54 lines
		
	
	
		
			950 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			950 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
 | 
						|
//
 | 
						|
// UNSUPPORTED: linux, darwin, solaris
 | 
						|
 | 
						|
#include <assert.h>
 | 
						|
#include <inttypes.h>
 | 
						|
#include <stdio.h>
 | 
						|
 | 
						|
int main(void) {
 | 
						|
  printf("fseek\n");
 | 
						|
 | 
						|
  FILE *fp = fopen("/etc/fstab", "r");
 | 
						|
  assert(fp);
 | 
						|
 | 
						|
  int rv = fseek(fp, 10, SEEK_SET);
 | 
						|
  assert(!rv);
 | 
						|
 | 
						|
  printf("position: %ld\n", ftell(fp));
 | 
						|
 | 
						|
  rewind(fp);
 | 
						|
 | 
						|
  printf("position: %ld\n", ftell(fp));
 | 
						|
 | 
						|
  rv = fseeko(fp, 15, SEEK_SET);
 | 
						|
  assert(!rv);
 | 
						|
 | 
						|
  printf("position: %" PRIuMAX "\n", (uintmax_t)ftello(fp));
 | 
						|
 | 
						|
  fpos_t pos;
 | 
						|
  rv = fgetpos(fp, &pos);
 | 
						|
  assert(!rv);
 | 
						|
 | 
						|
  rewind(fp);
 | 
						|
 | 
						|
  printf("position: %" PRIuMAX "\n", (uintmax_t)ftello(fp));
 | 
						|
 | 
						|
  rv = fsetpos(fp, &pos);
 | 
						|
  assert(!rv);
 | 
						|
 | 
						|
  printf("position: %" PRIuMAX "\n", (uintmax_t)ftello(fp));
 | 
						|
 | 
						|
  rv = fclose(fp);
 | 
						|
  assert(!rv);
 | 
						|
 | 
						|
  // CHECK: fseek
 | 
						|
  // CHECK: position: 10
 | 
						|
  // CHECK: position: 0
 | 
						|
  // CHECK: position: 15
 | 
						|
  // CHECK: position: 0
 | 
						|
  // CHECK: position: 15
 | 
						|
 | 
						|
  return 0;
 | 
						|
}
 |