err.. using SSE http://snippets.dzone.com/posts/show/6312
but change count to unsigned long int -- Roger P. Filomeno TwitSnap: The coolest Twitter widget for your site! http://www.twitsnap.com http://corruptedpartition.blogspot.com/ TEL#: +1-360-968-1767 SMS: send MSG GODIE <YOUR MESSAGE> to 2948 $> who | grep -i blond | date; cd ~; unzip; touch; strip; finger; mount; gasp; yes; uptime; umount; sleep On Wed, Feb 18, 2009 at 11:54 PM, fooler mail <[email protected]> wrote: > On Wed, Feb 18, 2009 at 10:14 PM, Pablo Manalastas > <[email protected]> wrote: > > Ramil's original problem is not how to read all those tens > > of gigabytes of text data, but the more simple problem of keeping > > a count of the number of lines read, since if wc uses int (fortunately > > it does not), then wc can count only up to 2 billion lines. But he > > expects to read up to 100 billion lines. Note that he does not need > > to keep them in memory -- he only needs to count the number of lines. > > I believe that wc is even an overkill, since the following simple > > code will do the job: > > > > unsigned long long n = 0; > > while( (c = getchar()) != EOF) { > > if(c == '\n') ++n; > > } > > return n; > > > > With this code, you do not even buffer the file, except for the > > buffering (usually 4k) that the C library implementation of the > > getchar() macro requires. > > yup that would do doc but the problem using getchar() is too slow > compare to fgets() or read() used by wc.. > > example of a simple code using fgets.. > > #include <stdio.h> > #include <stdlib.h> > #include <stdint.h> > > #define BUFSIZE 1024 > > int main(void) { > char buffer[BUFSIZE]; > uintmax_t lines; > > for (lines = 0; fgets(buffer, BUFSIZE, stdin) != NULL; lines++); > > printf("%ju\n", lines); > > return(0); > } > > save to let say wc2.c > > gcc -ansi -Wall -O3 -o wc2 wc2.c > > ./wc2 < /path/to/file > > the code above only needs a buffer size of maximum charactes in a > given line... this is faster than using getch() but a little bit > slower than read()... > > fooler. > _________________________________________________ > Philippine Linux Users' Group (PLUG) Mailing List > http://lists.linux.org.ph/mailman/listinfo/plug > Searchable Archives: http://archives.free.net.ph >
_________________________________________________ Philippine Linux Users' Group (PLUG) Mailing List http://lists.linux.org.ph/mailman/listinfo/plug Searchable Archives: http://archives.free.net.ph

