🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #2304

Re: [C++] fwrite + segmentation fault

#2304
From: Kristoffel
Date: Thu, 15 Jul 2004 17:35
53 lines
2928 bytes
Lorenzo Dieryckx wrote:
> Hello,
> 
> Ik zit met een raar probleempje, en ik geraak er echt niet aan uit
> 
> ��n van mijn klassen heeft volgende memberfunctie:
> 
> int FileByteDestination::WriteBytes(const void * buffer, int count)
> {
>   if (_file == 0)
>     return 0;
> 
>   std::cout << "inside FileByteDestination::WriteBytes: _file = " << _file << std::endl;
>   std::cout << "number of chars to write = " << count << std::endl;
>   std::cout << "real number of chars in string: " << strlen((char *)buffer) << std::endl;
>   std::cout << "string to write :" << std::endl << (char *)buffer << std::endl;
>   int retval = fwrite(buffer, sizeof(char), count, _file);
> //sizeof(char) = 1 byte
>   std::cout << "wrote " << retval << " bytes" << std::endl << std::endl;
>   return retval;
> }
> 
> _file is een FILE* die ingevuld wordt in de constructor van FileByteDestination (mbv fopen())
> 
> als ze opgeroepen wordt met als parameters "ik ben lorenzo", 14
> produceert ze volgende output:
> 
> inside FileByteDestination::WriteBytes: _file = 0x1e
> number of chars to write = 14
> real number of chars in string: 14
> string to write:
> ik ben lorenzo
> Segmentation fault
> 
> als ik met gdb door mijn programma step,
> krijg ik de segv op de lijn "int retval = fwrite(buffer, sizeof(char), count, _file)"
> 
> Heeft iemand enig idee waardoor dit zou kunnen veroorzaakt zijn?
> 
> --
> Lorenzo Dieryckx
> mail: lorenzopuntdieryckxatpandorapuntbe


1) is _file wel goed geopend, heeft er per ongeluk niemand een close 
gedaan? Ben je zeker dat fopen geen errors gaf?
Als test plaats de open en de close eens in WriteBytes.

2) Wees er zeker van dat buffer goed is gedeclareerd, daarom:
    std::cout << "sizeof (buffer): " << sizeof (buffer) << std::endl;

--
  Kristoffel
Technical Details
Message-ID: <wfzJc.186138$XZ1.8812637@phobos.telenet-ops.be>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!ecngs!feeder.ecngs.de!feed1.news.be.easynet.net!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
References: <6euaf0th4h3ctr13l2lk2se4lmbu39ueu6@4ax.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,33ec3f0617e4db5
X-Google-Attributes: gidfcea4,public
X-Google-Language: DUTCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!ecngs!feeder.ecngs.de!feed1.news.be.easynet.net!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
From: Kristoffel <kdg1955@yahoo.com>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: be.comp.programming
Subject: Re: [C++] fwrite + segmentation fault
References: <6euaf0th4h3ctr13l2lk2se4lmbu39ueu6@4ax.com>
In-Reply-To: <6euaf0th4h3ctr13l2lk2se4lmbu39ueu6@4ax.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 54
Message-ID: <wfzJc.186138$XZ1.8812637@phobos.telenet-ops.be>
Date: Thu, 15 Jul 2004 17:35:24 GMT
NNTP-Posting-Host: 213.119.71.129
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1089912924 213.119.71.129 (Thu, 15 Jul 2004 19:35:24 MEST)
NNTP-Posting-Date: Thu, 15 Jul 2004 19:35:24 MEST
Organization: Telenet Internet