You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2008/02/13 03:54:07 UTC
[jira] Created: (STDCXX-724) SIGXFSZ in filebuf
SIGXFSZ in filebuf
------------------
Key: STDCXX-724
URL: https://issues.apache.org/jira/browse/STDCXX-724
Project: C++ Standard Library
Issue Type: Bug
Components: 27. Input/Output
Affects Versions: 4.2.0
Environment: Fedora release 8 (Werewolf)
Reporter: Martin Sebor
Priority: Minor
The program below dies with SIGXFSZ on Linux. I don't think the standard allows filebuf to report errors using signals (since it describes file I/O in terms of C stdio), nor does a signal seem desirable in C++. We might need to suspend signals while calling POSIX [write()|http://www.opengroup.org/onlinepubs/009695399/functions/write.html].
gcc's libstdc++ fails in a similar way. I filed [bug 35176|http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35176].
{noformat}
$ cat u.cpp && make u && ./u
#include <fstream>
#include <sys/resource.h>
int main ()
{
rlimit rl;
getrlimit (RLIMIT_FSIZE, &rl);
rl.rlim_cur = 32;
setrlimit (RLIMIT_FSIZE, &rl);
std::filebuf fb;
if (0 == fb.open ("testfile.text", std::ios::out))
return -1;
for (rlim_t i = 0; ; ++i)
if (-1 == fb.sputc ('*'))
break;
}
gcc -c -I/home/sebor/stdcxx/include/ansi -D_RWSTDDEBUG -pthread -I/home/sebor/stdcxx/include -I/build/sebor/stdcxx-gcc-4.1.2-15D/include -I/home/sebor/stdcxx/tests/include -pedantic -nostdinc++ -g -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align u.cpp
gcc u.o -o u -L/build/sebor/stdcxx-gcc-4.1.2-15D/rwtest -lrwtest15D -pthread -L/build/sebor/stdcxx-gcc-4.1.2-15D/lib -Wl,-R/build/sebor/stdcxx-gcc-4.1.2-15D/lib:/build/sebor/stdcxx-gcc-4.1.2-15D/rwtest -lstd15D -lsupc++ -lm
File size limit exceeded
{noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.