*BSD News Article 7324


Return to BSD News archive

Path: sserve!manuel.anu.edu.au!munnari.oz.au!sgiblab!sdd.hp.com!cs.utexas.edu!sun-barr!ames!agate!usenet.ins.cwru.edu!gatech!rutgers!princeton!beam.Princeton.EDU!jsm
From: jsm@beam.Princeton.EDU (John Scott McCauley Jr.)
Newsgroups: comp.unix.bsd
Subject: Re: mktemp - Bus Error.
Message-ID: <1992Nov2.215333.1434@Princeton.EDU>
Date: 2 Nov 92 21:53:33 GMT
References: <6607@otc.otca.oz> <1992Nov2.210351.12723@ee.ryerson.ca>
Sender: news@Princeton.EDU (USENET News System)
Organization: Princeton University
Lines: 38
Originator: news@nimaster
Nntp-Posting-Host: beam.princeton.edu

In article <1992Nov2.210351.12723@ee.ryerson.ca> elf@ee.ryerson.ca (luis fernandes) writes:
>In article <6607@otc.otca.oz> alexk@otc.otca.oz.au (Alex Kowalenko) writes:
>>I'm having problems with mktemp failing due to a Bus Error.  Even a simple program like the
>>following will fail:
>>
>>#include<stdio.h>
>> 
>>main()
>>{
>>        printf("%s\n",mktemp("XXXX"));
>>}
>>
>>
>>Anyone else noticed this yet? Any fixes in mktemp?
>>
>According to the man:
>
>    mktemp() creates a unique file name,  typically  in  a  tem-
>    porary  filesystem, by replacing template with a unique file
>    name, and returns the address of template.   The  string  in
>    template  should  contain  a file name with six trailing Xs;
>    mktemp() replaces the Xs with a letter and the current  pro-
>    cess  ID.  The  letter  will be chosen so that the resulting
>    name does not duplicate an existing file.
>
>Life goes on...
>

The above code, although incorrect, doesn't core dump under Sun-OS or Ultrix cc.

You might need to specify '-fwritable-strings' if you are using GCC
or try something like:
	char tempname[1024];
	....
	strcpy(tempname, "/tmp/foo.XXXXXX");
	mktemp(tempname);

	Scott