Newsgroups: fj.lang.c
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!sinfony-news01!news-jp-0.abone.net!np1.iij.ad.jp!nf0.iij.ad.jp!nr0.iij.ad.jp!news.iij.ad.jp!rim.or.jp!tamaru-news!kuee-news!kuis-news!sakura.kudpc!sakunami!yagi!news
From: "YOSHIFUJI, Hideaki" <yoshfuji@ecei.tohoku.ac.jp>
Subject: Re: about read binary file.
X-Nntp-Posting-Host: eiw02.ec.ecei.tohoku.ac.jp
Content-Type: text/plain; charset=iso-2022-jp
Message-ID: <3368D315.D3E807B1@ecei.tohoku.ac.jp>
X-Priority: 3 (Normal)
Sender: news@ecei.tohoku.ac.jp
Reply-To: yoshfuji@ecei.tohoku.ac.jp
Content-Transfer-Encoding: 7bit
Organization: Faculty of Engineering, Tohoku University, JAPAN
References: <HISATOMI.97Apr21132126@seigyo.cc.saga-u.ac.jp>
	<1997Apr26.150830.8982@merope.opus.or.jp> <HISATOMI.97Apr30105013@seigyo.cc.saga-u.ac.jp>
Mime-Version: 1.0
Date: Thu, 1 May 1997 17:29:57 GMT
X-Mailer: Mozilla 4.0b3 [en] (Win95; I)
Lines: 122
Xref: galaxy.trc.rwcp.or.jp fj.lang.c:4042
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=4042&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$B5HF#1QL@!wElKLBg3XEE>p7O$G$9!#(B

hisatomi@cc.saga-u.ac.jp wrote:

> $B!!!!=q$-4V0c$$$G$9!#!!(Boff-line$B$G$N=q$-J}$,J,$+$i$J$/$F(Bon-line$B$G(B
> $B!!(Bprint out $B$5$l$?(Bprogram$B$r0lJ8;z$:$D=q$-<L$7$?$N$G!#<:Ni$7$^$7$?!#(B

$BBg4V0c$$$G$9$C$F!#(B:-p
$B!t(BCopy and Paste $B$G$-$J$$$s$G$9$+!)(B


> $B!!!J(BGNUS$B$G$O(Bon-line$B=q$-(B $B$H$+(B off-line$B=q$-$H$$$&I=8=$r$9$k$,E,Ev$G$"$k$N$+(B
> $B!!!!$o$+$i$J$$$N$GBgL\$K8+$F$/$@$5$$!%!K(B

GNUS $B$C$F(B emacs $B$N(B News Reader $B$N$3$H!)(B :-p


> >>$B$=$l$K$U$D$&$O(B
> >>      #define NSIZE   1024
> >>      long n;
> >>      char buf[NSIZE];    /* 1024byte$B$:$DFI$_$@$9(B */
> >>
> >>      FILE *fp;
> >>
> >>      if ((fp = fopen("rawdata.dat", "rb")) == NULL)  /* rb$B$O=hM}7O0MB8(B? */
> >>              exit(1);
> >>      for (n = 0; n < NSIZE; n++) {
> >>              fseek(fp, n, 0);                /* $B2?=h$+$iFI$_9~$`$+$r;XDj(B */
> >>              fread(buf[n - NSIZE], 1, 1, fp);/* 1 byte $B$:$DFI$_9~$_(B*/
> >>              if (n % 16 == 0)
> >>                      printf("\n%05x", n);
> >>              printf("%02x", buf[n]);
> >>      }
> >>      fclose(fp);
> >>$B$C$F$$$&=q$-J}$K$J$k$G$7$g$&!#(B
> >>$B$=$l$K!"$=$b$=$b(B2$B<!85G[Ns$K$9$kI,MW$O$I$3$K$b$J$$$7!"(B
> >>1byte$BFI$`$4$H$K(Bfseek$B$9$kI,MW$b$J$$$7!"(B
> >>fread()$B$N%(%i!<$b8+$J$$$H%3%"%@%s%W$7$^$9$M!#(B
> 
> $B!!(B2$B<!F~G[Ns$K$7$J$$$H!$$d$O$jF|2<It$5$s$N=q$+$l$?(Bprogram
> $B$G$b%3%s%Q%$%k$G$-$^$;$s!%$^$?(Bfseek$B$b:G=i$OL5$+$C$?$N$G$9$,(B
> $B$3$l$bL5$$$H!$F0:n$G$-$J$+$C$?$N$G$9!%(B
> $B!!$G$9$N$G!$F|2<It$5$s$ND{@5$5$l$?(Bprogram$B$r(B

$BF|2<It;a$N%U%)%m!<$O<g$K=qK!$KBP$9$k$b$N$G$9$M!#(B
$B$A$c$s$H%$%s%G%s%H$7$F$J$$$H$+!"JQ99$5$l$k$+$b$7$l$J$$Dj?t$rD>$K(B
$B=q$$$F$$$k$H$+!&!&!&!#(B

$B$@$$$?$$!"$"$J$?$O(B fread $B$N4X?t$KM?$($k0z?t$r4*0c$$$7$F$$$k$N$G$O!)(B
  size_t fread (void *buff, size_t block_size, size_t block_num, FILE
*fp);
                ~~~~~~~~~~
$B$J$N$G!"$?$@#1<!85G[Ns$K$7$F$7$^$C$?F|2<It;a$N=$@5$O$=$NE@$K4X$7$F$O(B
$B$h$/$J$$$o$1$G$9$M!#(B
$B!tF|2<It;a$O$b$A$m$s$4B8$8$@$C$?$s$G$7$g$&$,!"$A$c$s$H%]%$%s%?$K(B
$B!t$7$J$$$H$M!#(B


>   $B$"$H<+J,$O(B[FILMTN]$B$K%P%$%J%j7A<0$N%U%!%$%k$r#1#6?J$GI=<($G$-$k5!G=(B
> $B$,$"$k$N$G!$$=$A$i$G(Bprogram$B$N7k2L$HHf3S$7$F$$$^$9!%(B

$B$H$$$&$3$H$G!"<jH4$-$J(B16$B?J%@%s%W!#(B

/******$B$3$3$+$i(B******/
#include <stdio.h>
#include <stdlib.h>

#define  BUFFSIZE  1024
#if (BUFFSIZE<=0)
# undef BUFFSIZE
# define BUFFSIZE 1
#endif

int main (int argc, char *argv[]){
  FILE *fp;
  size_t n,r;
  char *filename;
  unsigned char *buf;

  if (argc > 1)
    filename = argv[1];
  else{
    printf("Usage: %s filename\n", argv[0]);
    exit(1);
  }

  if ( (buf = malloc(BUFFSIZE)) == NULL){
    printf("%s: Cannot allocate memory (size = %lu)\n", argv[0],
(unsigned long)BUFFSIZE );
    exit(1);
  }

  if ((fp = fopen(filename, "rb")) == NULL){  /* rb$B$O=hM}7O0MB8(B? */
    printf("%s: Cannot open file '%s'\n", argv[0], filename);
    exit(1);
  }

  n = 0;
  do{
    size_t i;
    r = fread( buf, 1, BUFFSIZE, fp);  /* BUFFSIZE$B$@$1FI9~(B*/
    for (i = 0; i < r; i++ ){
      if ((n + i) % 16 == 0)
        printf("\n%08x  ", (size_t)(n + i));
      printf("%02x ", (unsigned int)buf[i]);
    }
    n += r;
  }while (r == BUFFSIZE);

  printf("\n");
  fclose(fp);
  free(buf);

  return (0);
}
/******$B$3$3$^$G(B******/

-- 
$B5HF#1QL@(B (YOSHIFUJI, Hideaki)
Faculty of Engineering, Tohoku University, JAPAN

<URL:http://www.ecei.tohoku.ac.jp/~yoshfuji/>
