delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/06/02/04:06:28

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <0706F4CDC397BF4483877BFDA8DBD3A54622A5@kjsdemucshrexc1.eu.pm.com>
From: "Demmer, Thomas" <TDemmer AT krafteurope DOT com>
To: Cygwin List <cygwin AT cygwin DOT com>
Subject: Weird problem with gdb 2003-09-20-cvs (cygwin-special)
Date: Wed, 2 Jun 2004 10:06:06 +0200
MIME-Version: 1.0
Note-from-DJ: This may be spam

------_=_NextPart_000_01C44878.7487F8C0
Content-Type: text/plain

Hi list,
I have encountered a strange situation that I can boil down to
the attached test case. To reproduce the problem
issue 
$ echo 123 > a.dat
$ gcc -Wall -pedantic -o insi insi.c

The program runs fine when run from the command-line. Running 
within insight or gdb the sscanf dies with 
(gdb) run
Starting program: /m/c/insi.exe 

Program received signal SIGSEGV, Segmentation fault.
0x77e75a3f in KERNEL32!IsBadWritePtr () from
/c/WINDOWS/system32/kernel32.dll

This does not happen when compiled with -mno-cygwin.

To me this looks like a heap corruption, but where? It used to
work fine with 1.5.9 and fails now under 1.5.10.
read_whole_line() is from the snippets collection, which makes me believe
that the bug is not in this part, but who knows. 

Any pointers on where and what to search?

TIA
Ciao
Tom 


Thomas Demmer
Kraft Foods R&D Inc.
Food Productivity, Quality&Plant Support

Tel.: +49 (0)89 62738-6302
Fax: +49 (0)89 62738-86302
 <<insi.c>> 

------_=_NextPart_000_01C44878.7487F8C0
Content-Type: application/octet-stream;
	name="cygcheck.out"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="cygcheck.out"

Cygwin Package Information
Package                 Version            Status
_update-info-dir        00227-1            OK
a2ps                    4.13-1             OK
antiword                0.34-2             OK
ash                     20040127-1         OK
autoconf                2.59-1             OK
autoconf-devel          2.59-1             OK
autoconf-stable         2.13-5             OK
automake                1.7.9-1            OK
automake-devel          1.7.9-1            OK
automake-stable         1.4p6-2            OK
base-files              2.6-1              OK
base-passwd             1.1-1              OK
bash                    2.05b-16           OK
binutils                20040312-1         Incomplete
bison                   20030307-1         Incomplete
bzip2                   1.0.2-5            OK
cabextract              0.6-2              OK
clear                   1.0-1              OK
crypt                   1.1-1              OK
cvs                     1.11.6-3           OK
cygipc                  2.03-2             OK
cygrunsrv               1.0-1              OK
cygutils                1.2.5-1            OK
cygwin                  1.5.10-3           OK
cygwin-doc              1.3-7              OK
diff                    1.0-1              OK
diffutils               2.8.7-1            OK
ed                      0.2-1              Incomplete
editrights              1.01-1             OK
expat                   1.95.7-1           Incomplete
file                    4.06-1             OK
fileutils               4.1-2              Incomplete
findutils               4.1.7-4            Incomplete
flex                    2.5.4a-3           Incomplete
fontconfig              2.2.2-1            OK
freetype2               2.1.5-1            OK
gawk                    3.1.3-4            Incomplete
gcc                     3.3.1-3            OK
gcc-g++                 3.3.1-3            OK
gcc-g77                 3.3.1-3            OK
gcc-gpc                 3.3.1-3            OK
gcc-mingw               20030911-4         OK
gcc-mingw-core          20031020-1         OK
gcc-mingw-g++           20031020-1         OK
gcc-mingw-g77           20031020-1         OK
gcc-mingw-gpc           20031020-1         OK
gd                      2.0.21-1           OK
gdb                     20030919-1         Incomplete
gdbm                    1.8.3-7            OK
gettext                 0.12.1-3           OK
ghostscript             7.05-2             Incomplete
ghostscript-base        7.05-2             Incomplete
ghostscript-x11         7.05-2             OK
gnuplot                 3.8j.0-1           OK
grep                    2.5-1              Incomplete
groff                   1.18.1-2           Incomplete
gv                      3.5.8-1            OK
gzip                    1.3.5-1            Incomplete
indent                  2.2.9-1            OK
inetutils               1.3.2-28           OK
jpeg                    6b-11              OK
less                    381-1              Incomplete
lesstif                 0.93.91-6          OK
libbz2_1                1.0.2-5            OK
libcharset1             1.9.1-3            OK
libdb3.1                3.1.17-2           OK
libdb4.1                4.1.25-1           OK
libdb4.2                4.2.52-1           OK
libfontconfig-devel     2.2.2-1            OK
libfontconfig1          2.2.2-1            OK
libfreetype2-devel      2.1.5-1            OK
libfreetype26           2.1.5-1            OK
libgd2                  2.0.21-1           OK
libgdbm                 1.8.0-5            OK
libgdbm-devel           1.8.3-7            OK
libgdbm3                1.8.3-3            OK
libgdbm4                1.8.3-7            OK
libgettextpo0           0.12.1-3           OK
libiconv                1.9.1-3            Incomplete
libiconv2               1.9.1-3            OK
libintl                 0.10.38-3          OK
libintl1                0.10.40-1          OK
libintl2                0.12.1-3           OK
libjpeg62               6b-11              OK
libjpeg6b               6b-8               OK
libkpathsea3            2.0.2-13           OK
libkpathsea3abi13       2.0.2-2            OK
libltdl3                1.5-3              OK
libncurses5             5.2-1              OK
libncurses6             5.2-8              OK
libncurses7             5.3-4              OK
libopenldap2            2.1.25-1           OK
libpcre                 4.1-1              OK
libpcre0                4.5-1              OK
libpng10                1.0.15-4           OK
libpng10-devel          1.0.15-4           OK
libpng12                1.2.5-4            OK
libpng12-devel          1.2.5-4            OK
libpng2                 1.0.12-1           OK
libpopt0                1.6.4-4            OK
libreadline4            4.1-2              OK
libreadline5            4.3-5              OK
libtiff-devel           3.6.0-5            OK
libtiff3                3.6.0-2            OK
libtiff4                3.6.0-5            OK
libtool                 1.5b-1             OK
libtool-devel           1.5-3              OK
libtool-stable          1.4.3-2            OK
libXft                  2.1.6-1            OK
libXft-devel            2.1.6-1            OK
libXft1                 1.0.0-1            OK
libXft2                 2.1.6-1            OK
libxml2                 2.6.4-1            OK
libxslt                 1.1.2-1            OK
login                   1.9-7              OK
m4                      1.4-1              OK
make                    3.80-1             Incomplete
man                     1.5k-3             OK
mingw-runtime           3.3-1              OK
minires                 0.97-1             OK
mktemp                  1.5-3              OK
ncurses                 5.3-4              OK
newlib-man              20020801           OK
opengl                  1.1.0-7            OK
openssh                 3.8.1p1-1          OK
openssl                 0.9.7d-1           OK
openssl096              0.9.6j-1           OK
patch                   2.5.8-8            OK
pcre                    4.5-1              OK
pcre-devel              4.5-1              OK
pcre-doc                4.5-1              OK
perl                    5.8.2-1            OK
postgresql              7.4.1-3            OK
psutils                 1.17-1             Incomplete
python                  2.3.3-2            OK
readline                4.3-5              OK
rebase                  2.3-1              OK
rsync                   2.6.0-1            OK
rxvt                    2.7.10-4           OK
sed                     4.0.9-2            OK
sh-utils                2.0.15-4           Incomplete
tar                     1.13.25-5          OK
tcltk                   20030901-1         OK
termcap                 20021106-2         OK
terminfo                5.3_20030726-1     OK
tetex                   2.0.2-13           OK
tetex-base              2.0.2-13           OK
tetex-bin               2.0.2-13           Incomplete
tetex-doc               2.0.2-13           OK
tetex-extra             2.0.2-13           OK
tetex-tiny              2.0.2-13           OK
tetex-x11               2.0.2-13           OK
texinfo                 4.2-4              Incomplete
textutils               2.0.21-1           Incomplete
tiff                    3.6.0-5            OK
units                   1.77-1             Incomplete
unzip                   5.50-5             OK
upx                     1.24-1             OK
vim                     6.2.098-1          OK
w32api                  2.5-1              OK
which                   1.5-2              OK
X-startup-scripts       1.0.7-1            OK
Xaw3d                   1.5D-5             OK
xemacs                  21.4.15-1          OK
xemacs-emacs-common     21.4.15-1          OK
xemacs-sumo             2004-02-02-1       OK
xemacs-tags             21.4.15-1          OK
XFree86-base            4.3.0-11           OK
XFree86-bin             4.3.0-21           OK
XFree86-etc             4.3.0-12           OK
XFree86-fenc            4.3.0-2            OK
XFree86-fnts            4.3.0-2            OK
XFree86-lib             4.3.0-3            OK
XFree86-lib-compat      4.3.0-2            OK
XFree86-man             4.3.0-10           OK
XFree86-prog            4.3.0-21           OK
XFree86-startup-scripts 4.3.0-1            OK
XFree86-xserv           4.3.0-68           OK
xorg-x11-base           6.7.0.0-8          OK
xorg-x11-bin            6.7.0.0-4          OK
xorg-x11-bin-dlls       6.7.0.0-4          OK
xorg-x11-bin-lndir      6.7.0.0-2          OK
xorg-x11-devel          6.7.0.0-4          OK
xorg-x11-etc            6.7.0.0-3          OK
xorg-x11-fenc           6.7.0.0-2          OK
xorg-x11-fnts           6.7.0.0-1          OK
xorg-x11-libs-data      6.7.0.0-2          OK
xorg-x11-man-pages      6.7.0.0-2          OK
xorg-x11-xwin           6.7.0.0-9          OK
xpm-nox                 4.2.0-4            OK
xterm                   185-4              OK
zip                     2.3-6              OK
zlib                    1.2.1-1            OK

Cygwin Configuration Diagnostics
Current System Time: Wed Jun 02 09:53:22 2004

Windows XP Professional Ver 5.1 Build 2600 Service Pack 1

Path:	C:\cygwin\usr\X11R6\bin
	C:\cygwin\usr\local\bin
	C:\cygwin\bin
	C:\cygwin\bin
	C:\cygwin\bin
	c:\progra~1\ora81\bin
	c:\Program Files\Oracle\jre\1.1.7\bin
	c:\WINDOWS\system32
	c:\WINDOWS
	c:\WINDOWS\System32\Wbem
	c:\ACCESS20\RUNLIB
	c:\Program Files\Common Files\Autodesk Shared\
	c:\TEC80\BIN

Output from C:\cygwin\bin\id.exe (nontsec)
UID: 49592(tdemmer) GID: 10513(Domain Users)
10513(Domain Users)

Output from C:\cygwin\bin\id.exe (ntsec)
UID: 49592(tdemmer) GID: 10513(Domain Users)

SysDir: C:\WINDOWS\System32
WinDir: C:\WINDOWS

CYGWIN =3D `binmode ntsec smbntsec tty'
HOME =3D `m:\'
MAKE_MODE =3D `unix'
PWD =3D `/m/c'
USER =3D `tdemmer'

Use `-r' to scan registry

a:  fd           N/A    N/A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20
c:  hd  NTFS   19084Mb  43% CP CS UN PA FC     Local Disk
d:  cd           N/A    N/A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20
e:  fd  FAT      122Mb  26% CP    UN           CONCHE XF
g:  net NTFS     500Mb  22% CP CS UN PA FC     PROG_DATA
h:  net NTFS   13048Mb  49% CP CS    PA        ftpdocs
i:  net NTFS   13048Mb  49% CP CS    PA        tdemmerx
j:  net NTFS     500Mb  22% CP CS UN PA FC     PROG_DATA
m:  net NTFS     300Mb  88% CP CS UN PA FC     USER_DATA
n:  net NTFS   61223Mb  85% CP CS UN PA FC     DAT
p:  net NTFS     500Mb  22% CP CS UN PA FC     PROG_DATA
z:  net NTFS     500Mb  22% CP CS UN PA FC     PROG_DATA

C:\cygwin                          /                         system  binmode
c:                                 /c                        system  binmode
m:                                 /m                        system  binmod=
e,exec
C:\cygwin/bin                      /usr/bin                  system  binmode
C:\cygwin/lib                      /usr/lib                  system  binmode
C:\cygwin\usr\X11R6\lib\X11\fonts  /usr/X11R6/lib/X11/fonts  system  binmode
.                                  /cygdrive                 system  binmod=
e,cygdrive

Found: C:\cygwin\bin\awk.exe
Found: C:\cygwin\bin\bash.exe
Found: C:\cygwin\bin\cat.exe
Found: C:\cygwin\bin\cp.exe
Found: C:\cygwin\bin\cpp.exe
Found: C:\cygwin\bin\find.exe
Found: C:\cygwin\bin\gcc.exe
Found: C:\cygwin\bin\gdb.exe
Found: C:\cygwin\bin\grep.exe
Found: C:\cygwin\bin\ld.exe
Found: C:\cygwin\bin\ls.exe
Found: C:\cygwin\bin\make.exe
Found: C:\cygwin\bin\mv.exe
Found: C:\cygwin\bin\rm.exe
Found: C:\cygwin\bin\sed.exe
Found: C:\cygwin\bin\sh.exe
Found: C:\cygwin\bin\tar.exe

  237k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygdps-1.dll
   25k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygdpstk-1.dll
   28k 2004/01/16 C:\cygwin\usr\X11R6\bin\cygDtPrint-1.dll
   21k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygfontenc-1.dll
  282k 2003/10/28 C:\cygwin\usr\X11R6\bin\cygfreetype-9.dll
   36k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygFS-6.dll
  431k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygGL-1.dll
  437k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygGLU-1.dll
   74k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygICE-6.dll
   76k 2004/01/16 C:\cygwin\usr\X11R6\bin\cygMrm-2.dll
    9k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygoldX-6.dll
 1250k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygOSMesa-4.dll
   20k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygpsres-1.dll
   30k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygSM-6.dll
   66k 2004/01/16 C:\cygwin\usr\X11R6\bin\cygUil-2.dll
  869k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygX11-6.dll
  253k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXaw-6.dll
  355k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXaw-7.dll
  275k 2004/01/13 C:\cygwin\usr\X11R6\bin\cygXaw3d-7.dll
   30k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXcursor-1.dll
   49k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXext-6.dll
    7k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXfontcache-1.dll
   56k 2004/03/11 C:\cygwin\usr\X11R6\bin\cygXft-1.dll
   63k 2004/03/23 C:\cygwin\usr\X11R6\bin\cygXft-2.dll
   27k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXi-6.dll
  124k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygxkbfile-1.dll
   12k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygxkbui-1.dll
 1293k 2004/01/16 C:\cygwin\usr\X11R6\bin\cygXm-2.dll
   76k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXmu-6.dll
   11k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXmuu-1.dll
   26k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXp-6.dll
   51k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXpm-4.dll
   11k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXrandr-2.dll
   27k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXrender-1.dll
    8k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXRes-1.dll
  282k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXt-6.dll
   27k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXTrap-6.dll
   17k 2004/04/10 C:\cygwin\usr\X11R6\bin\cygXtst-6.dll
   61k 2003/08/09 C:\cygwin\bin\cygbz2-1.dll
   14k 2003/08/10 C:\cygwin\bin\cygcharset-1.dll
    7k 2003/10/19 C:\cygwin\bin\cygcrypt-0.dll
  841k 2004/03/17 C:\cygwin\bin\cygcrypto-0.9.7.dll
  645k 2003/04/11 C:\cygwin\bin\cygcrypto.dll
   22k 2004/02/10 C:\cygwin\bin\cygcygipc-2.dll
  380k 2002/07/24 C:\cygwin\bin\cygdb-3.1.dll
  831k 2003/09/20 C:\cygwin\bin\cygdb-4.1.dll
  895k 2004/04/28 C:\cygwin\bin\cygdb-4.2.dll
  487k 2002/07/24 C:\cygwin\bin\cygdb_cxx-3.1.dll
 1080k 2003/09/20 C:\cygwin\bin\cygdb_cxx-4.1.dll
 1156k 2004/04/28 C:\cygwin\bin\cygdb_cxx-4.2.dll
  155k 2004/01/07 C:\cygwin\bin\cygexpat-0.dll
   71k 2004/01/13 C:\cygwin\bin\cygexslt-0.dll
  129k 2004/03/11 C:\cygwin\bin\cygfontconfig-1.dll
   45k 2001/04/25 C:\cygwin\bin\cygform5.dll
   35k 2002/01/09 C:\cygwin\bin\cygform6.dll
   48k 2003/08/09 C:\cygwin\bin\cygform7.dll
  361k 2003/10/25 C:\cygwin\bin\cygfreetype-6.dll
  213k 2004/02/05 C:\cygwin\bin\cyggd-2.dll
   28k 2003/07/20 C:\cygwin\bin\cyggdbm-3.dll
   30k 2003/08/11 C:\cygwin\bin\cyggdbm-4.dll
   19k 2003/03/22 C:\cygwin\bin\cyggdbm.dll
   15k 2003/07/20 C:\cygwin\bin\cyggdbm_compat-3.dll
   15k 2003/08/11 C:\cygwin\bin\cyggdbm_compat-4.dll
   69k 2003/08/10 C:\cygwin\bin\cyggettextlib-0-12-1.dll
   12k 2003/08/10 C:\cygwin\bin\cyggettextpo-0.dll
  134k 2003/08/10 C:\cygwin\bin\cyggettextsrc-0-12-1.dll
   17k 2001/06/28 C:\cygwin\bin\cyghistory4.dll
   29k 2003/08/10 C:\cygwin\bin\cyghistory5.dll
  958k 2003/08/10 C:\cygwin\bin\cygiconv-2.dll
   22k 2001/12/13 C:\cygwin\bin\cygintl-1.dll
   37k 2003/08/10 C:\cygwin\bin\cygintl-2.dll
   21k 2001/06/20 C:\cygwin\bin\cygintl.dll
  132k 2003/08/11 C:\cygwin\bin\cygjpeg-62.dll
  119k 2002/02/09 C:\cygwin\bin\cygjpeg6b.dll
   60k 2003/09/17 C:\cygwin\bin\cygkpathsea-3.dll
   60k 2003/07/27 C:\cygwin\bin\cygkpathsea-3abi13.dll
   40k 2004/01/02 C:\cygwin\bin\cyglber-2.dll
  194k 2004/01/02 C:\cygwin\bin\cygldap-2.dll
  202k 2004/01/02 C:\cygwin\bin\cygldap_r-2.dll
   32k 2003/08/18 C:\cygwin\bin\cygltdl-3.dll
   26k 2001/04/25 C:\cygwin\bin\cygmenu5.dll
   20k 2002/01/09 C:\cygwin\bin\cygmenu6.dll
   29k 2003/08/09 C:\cygwin\bin\cygmenu7.dll
   15k 2003/11/20 C:\cygwin\bin\cygminires.dll
  156k 2001/04/25 C:\cygwin\bin\cygncurses++5.dll
  175k 2002/01/09 C:\cygwin\bin\cygncurses++6.dll
  226k 2001/04/25 C:\cygwin\bin\cygncurses5.dll
  202k 2002/01/09 C:\cygwin\bin\cygncurses6.dll
  224k 2003/08/09 C:\cygwin\bin\cygncurses7.dll
   15k 2001/04/25 C:\cygwin\bin\cygpanel5.dll
   12k 2002/01/09 C:\cygwin\bin\cygpanel6.dll
   19k 2003/08/09 C:\cygwin\bin\cygpanel7.dll
   62k 2003/12/11 C:\cygwin\bin\cygpcre-0.dll
   63k 2003/04/11 C:\cygwin\bin\cygpcre.dll
    9k 2003/12/11 C:\cygwin\bin\cygpcreposix-0.dll
   61k 2003/04/11 C:\cygwin\bin\cygpcreposix.dll
 1049k 2003/11/07 C:\cygwin\bin\cygperl5_8_2.dll
  168k 2003/08/10 C:\cygwin\bin\cygpng10.dll
  173k 2003/08/10 C:\cygwin\bin\cygpng12.dll
  170k 2002/01/21 C:\cygwin\bin\cygpng2.dll
   22k 2002/06/09 C:\cygwin\bin\cygpopt-0.dll
  108k 2001/06/28 C:\cygwin\bin\cygreadline4.dll
  148k 2003/08/10 C:\cygwin\bin\cygreadline5.dll
  171k 2004/03/17 C:\cygwin\bin\cygssl-0.9.7.dll
  165k 2003/04/11 C:\cygwin\bin\cygssl.dll
  281k 2003/02/24 C:\cygwin\bin\cygtiff3.dll
  282k 2003/08/11 C:\cygwin\bin\cygtiff4.dll
 1172k 2004/01/10 C:\cygwin\bin\cygxml2-2.dll
   50k 2003/08/09 C:\cygwin\bin\cygXpm-noX4.dll
   54k 2003/08/09 C:\cygwin\bin\cygXpm-X4.dll
  191k 2004/01/13 C:\cygwin\bin\cygxslt-1.dll
   61k 2003/12/04 C:\cygwin\bin\cygz.dll
 1126k 2004/05/26 C:\cygwin\bin\cygwin1.dll
    Cygwin DLL version info:
        DLL version: 1.5.10
        DLL epoch: 19
        DLL bad signal mask: 19005
        DLL old termios: 5
        DLL malloc env: 28
        API major: 0
        API minor: 116
        Shared data: 4
        DLL identifier: cygwin1
        Mount registry: 2
        Cygnus registry name: Cygnus Solutions
        Cygwin registry name: Cygwin
        Program options name: Program Options
        Cygwin mount registry name: mounts v2
        Cygdrive flags: cygdrive flags
        Cygdrive prefix: cygdrive prefix
        Cygdrive default prefix:=20
        Build date: Tue May 25 22:07:00 EDT 2004
        CVS tag: cr-0x5e6
        Shared id: cygwin1S4

Use -h to see help about each section

------_=_NextPart_000_01C44878.7487F8C0
Content-Type: application/octet-stream;
	name="insi.c"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="insi.c"

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

/* Read a line from FP and return the pointer to freshly allocated
   storage.  The stoarage space is obtained through malloc() and
   should be freed with free() when it is no longer needed.

   The length of the line is not limited, except by available memory.
   The newline character at the end of line is retained.  The line is
   terminated with a zero character.

   After end-of-file is encountered without anything being read, NULL
   is returned.  NULL is also returned on error.  To distinguish
   between these two cases, use the stdio function ferror().  */

char *
read_whole_line (FILE *fp){
  int length =3D 0;
  int bufsize =3D 82;
  char *line =3D (char *)malloc (bufsize);

  while (fgets (line + length, bufsize - length, fp)){
    length +=3D strlen (line + length);
    if (length =3D=3D 0)
      /* Possible for example when reading from a binary file where
	 a line begins with \0.  */
      continue;
=20=20=20=20
    if (line[length - 1] =3D=3D '\n')
      break;
=20=20=20=20
    /* fgets() guarantees to read the whole line, or to use up the
       space we've given it.  We can double the buffer
       unconditionally.  */
    bufsize <<=3D 1;
    line =3D realloc (line, bufsize);
  }
  if (length =3D=3D 0 || ferror (fp)){
    free (line);
    return NULL;
  }
  if (length + 1 < bufsize){
    /* Relieve the memory from our exponential greediness.  We say
       `length + 1' because the terminating \0 is not included in
       LENGTH.  We don't need to zero-terminate the string ourselves,
       though, because fgets() does that.  */
    line =3D realloc (line, length + 1);
  }
  return line;
}

int
main(void){
  char *a;
  int i;
  FILE *f;

  f =3D fopen("a.dat","r");
  a =3D read_whole_line(f);
  sscanf(a,"%d",&i);
  fclose(f);
  return i;
}


------_=_NextPart_000_01C44878.7487F8C0
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
------_=_NextPart_000_01C44878.7487F8C0--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019