FILE* fp; // if file is 50 bytes long: fseek(fp, /* from the end */ 23, SEEK_END); // <- at 50 - 23 so 27 fseek(fp, /* from the start */ 23, SEEK_SET); // 23 fseek(fp, /* from the the current (see ftell) */ 10, SEEK_CUR); // 33