문제

이를 수행하는 가장 좋은 방법은 무엇입니까?tmpnam()은 드라이브 루트에 있는 파일의 경로를 반환합니다. 이를 위해서는 Windows Vista에서 관리자 권한이 필요하므로 이는 옵션이 아닙니다.

도움이 되었습니까?

해결책

GetTempPath 그리고 임시 파일 이름 가져오기 작동해야합니다.

다른 팁

Windows의 환경 변수 %TEMP%는 사용자 임시 디렉터리를 가리킵니다.

관리되는 C++에서는 Path::GetTempFileName()을 호출하여 사용자 임시 디렉터리(Path::GetTempPath()를 사용하여 찾을 수 있음)에 임시 파일을 제공할 수 있습니다.GetTempFileName()은 기본적으로 GUID를 파일 이름으로 사용하여 %TEMP% 경로에 있는 파일 경로를 제공합니다.그런 다음 해당 경로를 사용하여 파일을 만들고 원하는 작업을 수행합니다.현재 프로세스 환경 변수에 액세스할 수 있는 모든 언어에서 유사한 논리를 수행할 수 있습니다.

도움이 되었기를 바랍니다.

남자 이름.

모두가 쓸 수 있는 디렉터리로 설정된 환경 변수 TEMP 및 TMP를 사용해 보셨나요?XP(Vista가 익숙하지 않음)에서 환경 변수를 변경하려면 시스템 속성, [고급] 탭, [환경 변수] 버튼으로 이동하세요.

아마도 kernel32.dll에서 Win32 메서드 GetTempPath()를 사용할 수 있을 것입니다.이는 System.IO.Path.GetTempFileName()에 의해 .NET으로 래핑됩니다.

XP에서는 C:\Documents and Settings\username\Local Settings emp\에 경로가 반환되므로 관리자 권한이 필요하지 않습니다.

상호 운용성에 관심이 있다면 tmpnam 매뉴얼 페이지에서 다음을 제안합니다.

tmpnam 매뉴얼 페이지

BUGS
       Never use this function. Use mkstemp(3) instead.

mkstemp 매뉴얼 페이지

SYNOPSIS
       #include <stdlib.h>

       int mkstemp(char *template);

DESCRIPTION
       The mkstemp() function generates a unique temporary file name from template.  The last six characters of template must be
       XXXXXX and these are replaced with a string that makes the filename unique. The file is then created with mode read/write

그러나 이 모든 것은 TMP 환경 변수의 내용이 앞에 붙은 템플릿을 준비했음을 의미합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top