Return to BSD News archive
Newsgroups: comp.os.386bsd.bugs
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!decwrl!concert!sas!mozart.unx.sas.com!torpid.unx.sas.com!sastdr
From: sastdr@torpid.unx.sas.com (Thomas David Rivers)
Subject: Re: mktemp() crashes
Sender: news@unx.sas.com (Noter of Newsworthy Events)
Message-ID: <CF9BDx.n2J@unx.sas.com>
Date: Thu, 21 Oct 1993 17:03:32 GMT
References: <CF7snJ.ID9@dvorak.amd.com>
Nntp-Posting-Host: torpid.unx.sas.com
Organization: SAS Institute Inc.
Lines: 31
The mktemp problem is usually caused by incorrect use of mktemp().
If you have code of the form:
name = mktemp("some_char_const");
then when the mktemp call tries to write into the template
("some_char_const") - it blows up...
This is because the "some_char_const", per ANSI can be placed in non
writable (read-only) storage - since it is a character constant.
You can get around this by proper coding of the code that uses mktemp()
as in:
char temp_buf[] = "some_char_const";
name = mktemp(temp_buf);
(Which will write into "temp_buf" - not the defined char const.)
Or - you can compile with the GCC option for writeable-strings; which
was added just for this, and other similar cases.
- Dave Rivers -
(ponds!rivers@dg-rtp.dg-com)
(sastdr@unx.sas.com)
--
Imagine Whirled Peas.