This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/38876] New: cannot reuse input stream 1022 times on same file
- From: "william dot langdon at kcl dot ac dot uk" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Jan 2009 17:39:17 -0000
- Subject: [Bug c/38876] New: cannot reuse input stream 1022 times on same file
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
I have seen bug 21198. My understanding is that refers to an operating system
limit on the number of simultaneous files open. However if we attempt to reuse
the same stream using fclose to close it before fopen is called again
we still hit a limit. Under gentoo gcc runtime fails to open the file on the
1022th attempt.
Example source: gcc-bug.c/* W. B. Langdon, Crest, King's College, London 16 Jan
2009
gcc fails to open file 1021 times
*/
#include <stdio.h>
main(argc, argv)
int argc;
char *argv[];
{
int j;
FILE *fpt1;
for(j=1;j<=1024;j++) {
fpt1 = fopen("any_file.txt","r");
if(!fpt1) {
fprintf(stderr, "failed to open `any_file.txt',`r' %0x\n",fpt1);
return;
}
close(fpt1);
fprintf(stdout, "loop %d done\n",j);
}
}
out put fragment:
loop 1017 done
loop 1018 done
loop 1019 done
loop 1020 done
loop 1021 done
failed to open `any_file.txt',`r' 0
Contents of any_file.txt:
here is a line of text
Request disgnostic output from compiler
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.1.2/work/gcc-4.1.2/configure
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.1.2
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.1.2/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/g++-v4
--host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec
--enable-nls --without-included-gettext --with-system-zlib --disable-checking
--disable-werror --enable-secureplt --disable-libunwind-exceptions
--disable-multilib --enable-libmudflap --disable-libssp --disable-libgcj
--with-arch=i686 --enable-languages=c,c++,treelang,fortran --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.1.2 (Gentoo 4.1.2 p1.0.2)
/usr/libexec/gcc/i686-pc-linux-gnu/4.1.2/cc1 -E -quiet -v gcc-bug.c
-march=i686 -fpch-preprocess -o gcc-bug.i
ignoring nonexistent directory
"/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include
/usr/include
End of search list.
/usr/libexec/gcc/i686-pc-linux-gnu/4.1.2/cc1 -fpreprocessed gcc-bug.i -quiet
-dumpbase gcc-bug.c -march=i686 -auxbase gcc-bug -version -o gcc-bug.s
GNU C version 4.1.2 (Gentoo 4.1.2 p1.0.2) (i686-pc-linux-gnu)
compiled by GNU C version 4.1.2 (Gentoo 4.1.2 p1.0.2).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 4765ab829ec24257bff495f3c6370d71
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/bin/as -V
-Qy -o gcc-bug.o gcc-bug.s
GNU assembler version 2.18 (i686-pc-linux-gnu) using BFD version (GNU Binutils)
2.18
/usr/libexec/gcc/i686-pc-linux-gnu/4.1.2/collect2 --eh-frame-hdr -m elf_i386
-dynamic-linker /lib/ld-linux.so.2
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crt1.o
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crti.o
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/crtbegin.o
-L/usr/lib/gcc/i686-pc-linux-gnu/4.1.2 -L/usr/lib/gcc/i686-pc-linux-gnu/4.1.2
-L/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/lib
-L/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../.. gcc-bug.o -lgcc --as-needed
-lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/crtend.o
/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crtn.o
--
Summary: cannot reuse input stream 1022 times on same file
Product: gcc
Version: 4.1.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: william dot langdon at kcl dot ac dot uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38876