tmpfnam
함수를 호출하여 임시 파일 이름을 얻고 작성을 위해 파일을 만드는 데 사용하는 C++ 프로그램에서 임시 파일을 만들려고하지만 코드가 임시 파일을 만들 수 없습니다. 그러나 tmpfnam
의 임시 이름을 사용하는 대신 사용자 제공 파일 이름이나 문자열 상수를 사용할 때 파일 만들기가 완벽하게 작동합니다.tmpfnam을 사용하여 C++에서 임시 파일을 만들 수 없습니다.
std::tmpnam(fname); //does not work
std::fstream f(fname,std::ios::out);
char* fname = "myfile.txt"; //works
std::fstream f(fname,std::ios::out);
가 나는 경우 2 파일이 원본 파일과 같은 디렉토리에 생성되고 있음을 확인할 수 있지만 경우 1에 나뿐만 아니라 여전히 관리자 권한 아래에있는 프로그램을 실행 시도 예를 들면 다음과 같습니다 불운 . 왜 그렇게 생각하세요?
'tmpnam'에 무엇을 전달하고 있습니까? 충분히 큰가요? – cnicutar
나는 당신이 실행 파일과 같은 디렉토리에 쓸 수 있다는 것이 놀랍다. 실행 파일은 보호 된 위치에 있으면 안됩니다. –
@cnicutar'fname'은'L_tmpnam' 크기로 선언되었으므로 잘 동작합니다. – adi