1. RE: Linux question

Irv Mullins wrote:
> 
> I need to create unique temporary files, which I can do using 
> mktemp , i.e. system_exec('mktemp myprog.XXXXXX',0)
> 
> The question is, how do I find out what name mktemp has used 
> to create my file? The name is normally printed on the console, 
> and I don't kow how to redirect that so Euphoria can get to it.
> 
> Thanks,
> Irv
> 
> 

You could create the filename yourself, after doing a dir()
like i did in my "EuViewer" "copy.ew" currently on the RDS site 
download section, in which you append a chosen char untill the
name is unique, or you could use the following win api function:

UINT GetTempFileName(
    LPCTSTR  lpPathName,	// address of directory name for
                                   temporary file 
    LPCTSTR  lpPrefixString,	// address of filename prefix 
    UINT  uUnique,	// number used to create temporary filename 
    LPTSTR  lpTempFileName 	// address of buffer that receives
                                   the new filename 
   );

(note this only gets a filename, doesnt open a file in some cases)

Parameters:

lpPathName:
Points to a null-terminated string that specifies the directory path for 
the filename. This string must consist of characters in the ANSI 
character set. Applications typically specify a period (.) or the result 
of the GetTempPath function for this parameter. If this parameter is 
NULL, the function fails. 

lpPrefixString:
Points to a null-terminated prefix string. The function uses the first 
three characters of this string as the prefix of the filename. This 
string must consist of characters in the ANSI character set. 

uUnique:
Specifies an unsigned integer that the function converts to a 
hexadecimal string for use in creating the temporary filename. 
If uUnique is nonzero, the function appends the hexadecimal string to 
lpPrefixString to form the temporary filename. In this case, the 
function does not create the specified file, and does not test whether 
the filename is unique.
If uUnique is zero, the function uses a hexadecimal string derived from 
the current system time. In this case, the function uses different 
values until it finds a unique filename, and then it creates the file in 
the lpPathName directory.

lpTempFileName:
Points to the buffer that receives the temporary filename. This 
null-terminated string consists of characters in the ANSI character set. 
This buffer should be at least the length, in bytes, specified by 
MAX_PATH to accommodate the path. 

Return Value:
If the function succeeds, the return value specifies the unique numeric 
value used in the temporary filename. If the uUnique parameter is 
nonzero, the return value specifies that same number. 
If the function fails, the return value is zero. To get extended error 
information, call GetLastError. 

Remarks:
The GetTempFileName function creates a temporary filename of the 
following form:
     path\preuuuu.TMP
The following table describes the filename syntax: 

Component	Meaning
path	Path specified by the lpPathName parameter
pre	First three letters of the lpPrefixString string
uuuu	Hexadecimal value of uUnique

When Windows shuts down, temporary files whose names have been created 
by this function are not automatically deleted. 
To avoid problems resulting from converting an ANSI character set string 
to a Windows string, an application should call the CreateFile function 
to create a temporary file. 
If the uUnique parameter is zero, GetTempFileName attempts to form a 
unique number based on the current system time. If a file with the 
resulting filename exists, the number is increased by one and the test 
for existence is repeated. Testing continues until a unique filename is 
found. GetTempFileName then creates a file by that name and closes it. 
When uUnique is nonzero, no attempt is made to create and open the file. 



Im sure there are other ways too smile

Good luck with it.
--Al

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu