Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Uno <Uno@example.invalid> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: looking at binary files with C |
| Date | 2011-06-12 16:31 -0600 |
| Message-ID | <95kt2cF48sU1@mid.individual.net> (permalink) |
| References | <95j3bgFj2qU1@mid.individual.net> <1bk4crnhkt.fsf@snowball.wb.pfeifferfamily.net> <95kmvoFn2bU1@mid.individual.net> <it3apt$eb0$1@dont-email.me> <lnoc227n6w.fsf@nuthaus.mib.org> |
On 06/12/2011 03:29 PM, Keith Thompson wrote:
> "BartC"<bc@freeuk.com> writes:
>> "Uno"<Uno@example.invalid> wrote in message
>> news:95kmvoFn2bU1@mid.individual.net...
>>
>>> a[c] = ++a[c];
>>
>> I think just:
>>
>> ++a[c];
>>
>> will do here, since ++ also modifies it's operand as well as return it's
>> value plus 1.
>
> In fact the behavior of a[c] = ++a[c] is undefined, since it modifies
> a[c] twice without an intervening sequence point.
>
I changed that. So now I'm trying to get the data in a dynamic array:
$ indent -i3 hist7.c
$ cc -Wall -Wextra hist7.c -o hist
$ ./hist
file_length is 19573712
a[245] is 50064
a[246] is 38224
a[247] is 58741
a[248] is 92306
a[249] is 58773
a[250] is 65617
a[251] is 41401
a[252] is 97099
a[253] is 75547
a[254] is 113450
a[255] is 128194
counter2 reached 819416
counter reached 19573713
execution makes it this far
b[245] is 50064
b[246] is 38224
b[247] is 58741
b[248] is 92306
b[249] is 58773
b[250] is 65617
b[251] is 41401
b[252] is 97099
b[253] is 75547
b[254] is 113450
b[255] is 128194
counter3 reached 819416
$ cat hist7.c
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
#define SIZE 20000000
#define SIZE2 (UCHAR_MAX+1)
int
main (void)
{
int c;
long counter = 0;
long counter2 = 0;
long counter3 = 0;
long a[SIZE2], b[SIZE2];
long i, j, end;
FILE *fp;
char filename[] = "shoulder.wmv";
unsigned char *p;
fp = fopen (filename, "rb+");
fseek (fp, 0L, SEEK_END);
end = ftell (fp);
fseek (fp, 0L, SEEK_SET);
printf ("file_length is %ld\n", end);
p = malloc (end);
for (i = 0; i < (SIZE2); ++i)
{
a[i] = 0;
}
for (j = 0; j < SIZE; ++j)
{
c = fgetc (fp);
counter++;
if (c != EOF)
{
p[j] = c;
++a[c];
}
else
break;
}
for (i = 245; i < (SIZE2); ++i)
{
printf ("a[%ld] is %ld\n", i, a[i]);
counter2 = counter2 + a[i];
}
printf ("counter2 reached %ld\n", counter2);
printf ("counter reached %ld\n", counter);
for (i = 0; i < SIZE2; ++i)
{
b[i] = 0;
}
printf ("execution makes it this far\n");
for (j = 0; j < end; ++j)
{
c = p[j];
++b[c];
}
for (i = 245; i < (SIZE2); ++i)
{
printf ("b[%ld] is %ld\n", i, b[i]);
counter3 = counter3 + b[i];
}
printf ("counter3 reached %ld\n", counter3);
fclose (fp);
return 0;
}
// cc -Wall -Wextra hist7.c -o hist
$
Does the malloc'ing look good for reading this file? Also, what do
POSIX and C say about the EOF character itself? If my data are typical,
I would say that neither thinks that EOF is part of the file.
(Because it's pentecost) Yabba-daba-doo!
--
Uno
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 00:06 -0600
Re: looking at binary files with C Ian Collins <ian-news@hotmail.com> - 2011-06-12 18:41 +1200
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 00:58 -0600
Re: looking at binary files with C Barry Schwarz <schwarz45@yahoo.com> - 2011-06-12 00:05 -0700
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 01:41 -0600
Re: looking at binary files with C "Joachim Schmitz" <jojo.nospam@schmitz-digital.de> - 2011-06-12 11:44 +0200
Re: looking at binary files with C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-06-12 10:25 -0600
Re: looking at binary files with C Ike Naar <ike@sverige.freeshell.org> - 2011-06-12 10:26 +0000
Re: looking at binary files with C Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-06-12 08:23 -0400
Re: looking at binary files with C Hans Vlems <hvlems@freenet.de> - 2011-06-13 23:48 -0700
Re: looking at binary files with C Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-23 00:55 -0700
Re: looking at binary files with C "BartC" <bc@freeuk.com> - 2011-06-12 14:26 +0100
Re: looking at binary files with C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-06-12 10:24 -0600
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 14:47 -0600
Re: looking at binary files with C "BartC" <bc@freeuk.com> - 2011-06-12 22:23 +0100
Re: looking at binary files with C Keith Thompson <kst-u@mib.org> - 2011-06-12 14:29 -0700
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 16:31 -0600
Re: looking at binary files with C Keith Thompson <kst-u@mib.org> - 2011-06-12 16:14 -0700
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 18:41 -0600
Re: looking at binary files with C Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-06-12 17:42 -0400
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 17:01 -0600
Re: looking at binary files with C Keith Thompson <kst-u@mib.org> - 2011-06-12 16:23 -0700
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 17:24 -0600
Re: looking at binary files with C Ian Collins <ian-news@hotmail.com> - 2011-06-13 11:28 +1200
Re: looking at binary files with C Geoff <geoff@invalid.invalid> - 2011-06-12 16:52 -0700
Re: looking at binary files with C Keith Thompson <kst-u@mib.org> - 2011-06-13 08:51 -0700
Re: looking at binary files with C Seebs <usenet-nospam@seebs.net> - 2011-06-13 14:39 +0000
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-13 20:01 -0600
Re: looking at binary files with C Keith Thompson <kst-u@mib.org> - 2011-06-13 19:24 -0700
Re: looking at binary files with C Seebs <usenet-nospam@seebs.net> - 2011-06-14 17:02 +0000
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-16 01:32 -0600
Re: looking at binary files with C Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-06-13 07:57 -0400
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-13 20:23 -0600
Re: looking at binary files with C Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-06-13 23:12 -0400
Re: looking at binary files with C lovecreatesbeauty <lovecreatesbeauty@gmail.com> - 2011-06-14 01:09 -0700
Re: looking at binary files with C Oliver Jackson <chexmofo@hotmail.com> - 2011-06-15 20:15 -0700
Re: looking at binary files with C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-06-12 18:41 -0600
Re: looking at binary files with C James Waldby <not@valid.invalid> - 2011-06-13 01:16 +0000
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-12 19:48 -0600
Re: looking at binary files with C "io_x" <a@b.c.invalid> - 2011-06-14 12:19 +0200
Re: looking at binary files with C lovecreatesbeauty <lovecreatesbeauty@gmail.com> - 2011-06-14 03:58 -0700
Re: looking at binary files with C "io_x" <a@b.c.invalid> - 2011-06-14 19:07 +0200
Re: looking at binary files with C "io_x" <a@b.c.invalid> - 2011-06-14 19:46 +0200
Re: looking at binary files with C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-06-14 16:08 -0600
Re: looking at binary files with C Ian Collins <ian-news@hotmail.com> - 2011-06-15 08:47 +1200
Re: looking at binary files with C Hans Vlems <hvlems@freenet.de> - 2011-06-13 23:51 -0700
Re: looking at binary files with C Michael Press <rubrum@pacbell.net> - 2011-06-15 13:06 -0700
Re: looking at binary files with C Uno <Uno@example.invalid> - 2011-06-16 01:38 -0600
Re: looking at binary files with C Michael Press <rubrum@pacbell.net> - 2011-06-16 00:54 -0700
Re: looking at binary files with C James Waldby <not@valid.invalid> - 2011-06-16 16:59 +0000
Re: looking at binary files with C "J. J. Farrell" <jjf@bcs.org.uk> - 2011-06-16 18:32 +0100
csiph-web