~ubuntu-branches/ubuntu/vivid/gcl/vivid

« back to all changes in this revision

Viewing changes to misc/test-seek.c

  • Committer: Bazaar Package Importer
  • Author(s): Camm Maguire
  • Date: 2002-03-04 14:29:59 UTC
  • Revision ID: james.westby@ubuntu.com-20020304142959-dey14w08kr7lldu3
Tags: upstream-2.5.0.cvs20020219
ImportĀ upstreamĀ versionĀ 2.5.0.cvs20020219

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include "include.h"
 
3
#ifdef HAVE_AOUT
 
4
#include HAVE_AOUT
 
5
#endif
 
6
#ifdef HAVE_ELF
 
7
#include <elf.h>
 
8
#endif
 
9
 
 
10
#define OUR_MAX(a,b) (a > b ? a : b)
 
11
 
 
12
#define SEEK_TO_END_OFILE(fp)\
 
13
 do{ int m; \
 
14
     Elf32_Ehdr eheader; \
 
15
     Elf32_Shdr shdr;  \
 
16
     fseek(fp,0,SEEK_SET);   \
 
17
     fread(&eheader,sizeof(eheader),1,fp); \
 
18
     fseek(fp,eheader.e_shoff+(eheader.e_shnum -1) \
 
19
           *eheader.e_shentsize,0); \
 
20
     fread(&shdr,eheader.e_shentsize,1,fp); \
 
21
     fseek(fp,OUR_MAX(shdr.sh_offset+ shdr.sh_size, \
 
22
                      eheader.e_shoff+(eheader.e_shnum) \
 
23
                      *eheader.e_shentsize) \
 
24
                      , SEEK_SET);\
 
25
   }while(0)
 
26
 
 
27
 
 
28
 
 
29
main(argc,argv)
 
30
     char *argv[];
 
31
{ FILE *fp;
 
32
  fp = fopen (argv[1],"r");
 
33
 
 
34
  SEEK_TO_END_OFILE(fp); 
 
35
  printf("end = %d\n",ftell(fp));
 
36
}
 
37