Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!mcsun!ukc!edcastle!anselm From: anselm@castle.ed.ac.uk (A Lingnau) Newsgroups: comp.lang.c Subject: printf/scanf trouble on SPARCstation Summary: formatted I/O crashes big program, runs OK in small program Keywords: stdio SPARCstation big-programs Message-ID: <5856@castle.ed.ac.uk> Date: 22 Aug 90 08:59:28 GMT Organization: Edinburgh University Computing Service Lines: 25 The following problem completely beats me. I'm also rather new to SPARCstations, and my knowledge of SPARC assembly language (ugh) is virtually zero: I have a large program (object size ~1/2 MB) that wants to read and write things from/to files. However, whenever it tries to do so a segmentation fault occurs. I have traced the error to a routine called `_doprnt()' which appears to be a subroutine of `fprintf()'. Specifically, the error occurs at the instruction _doprnt+0x24: ld [%o0], %o0 where, it seems, the machine wants to dereference a NULL pointer; at least %o0 is 0 at that point. The problem does not occur when the program in question is small (~25 KB). Also, when I substitute `fputs()' for `fprintf()' at this point, it goes past there O.K. but bombs when it hits a `fscanf()' later on. When I use `sprintf()' and `fputs()' in place of `fprintf()' the thing dies, too. The code is known to work on other UNIX machines; we're running SunOS 4.1 on a SPARCstation 1+ and the `native' C compiler. Any help will be greatly appreciated. Please email to anselm@castle.ed.ac.uk. - Anselm.