l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
August 5: Social gathering
Next Installfest:
TBD
Latest News:
Jul. 4: July, August and September: Security, Photography and Programming for Kids
Page last updated:
2001 Dec 30 16:58

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] c program in linux vs sgi
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] c program in linux vs sgi



On Sat, 18 Nov 2000 jdnewmil@dcn.davis.ca.us wrote:

> On Sat, 18 Nov 2000, Qinghua Zhong wrote:
> 
> > hello, I am trying to compile and run one program in linux and sgi.
> > some problems come up and I don't understand.
> 
> > 1) when I am running the program in linux, there is a "core" file created,
> > but never happen in sgi. so if I have a big calculation, core is very
> > large and it stop running in linux because of "core dumped".
> 
> Sounds like a portability problem.  Hard to diagnose from this
> description. Try running gdb under linux to find the problem code, and
> learn how to avoid that portability problem in the future.
 
if you don't know gdb, you can read my gdb tutorial:

        http://landau.ucdavis.edu/p/linux/gdb/gdb_welcome.html

don't write another line of C until you know the basics of gdb.  the time
you put into learning it will pay off big time in the future.

> > 2) if condition problem-->never happend in sgi machines again.
> 
> I don't understand this phrase.
 
i think he meant that  .55 == (double)55 / (double)100  on sgi, but not on
linux.

> >    x is 0.55 (double variable)
> >    y is 55 (int variable), z is 100 (int variable)
> >    (x == (double) y / (double) z) returns false.
> >    how come?
> 
> It is rarely a good idea to compare floating point values directly, since
> round-off error can make numbers that appear to be the same, not the same.  
> I suspect that in your case, x is equal to 0.55 plus some very very small
> difference from (double)55/100, but you just typed what was printed on
> your screen.  Putting a literal constant 0.55 in place of x, gcc on linux
> shows this test returning true for me.
 
not much to add; pretty much sums it up.

pete


LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.