std:: tmpnam
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<cstdio>
|
||
|
char
*
tmpnam
(
char
*
filename
)
;
|
||
현재 존재하는 파일의 이름과 중복되지 않는 고유한 파일명을 생성하여 filename 이 가리키는 문자열에 저장합니다. 이 함수는 최대 TMP_MAX 개의 고유한 파일명을 생성할 수 있지만, 일부 또는 전체가 이미 사용 중일 수 있어 반환값으로 적합하지 않을 수 있습니다.
std::tmpnam 정적 상태를 수정하며 스레드 안전성이 요구되지 않습니다.
목차 |
매개변수
| filename | - | 최소 L_tmpnam 바이트를 저장할 수 있는 문자 배열에 대한 포인터로, 결과 버퍼로 사용됩니다. 널 포인터가 전달되면 내부 정적 버퍼에 대한 포인터가 반환됩니다 |
반환값
filename 이 null 포인터가 아닌 경우 filename 을 반환합니다. 그렇지 않은 경우 내부 정적 버퍼에 대한 포인터가 반환됩니다. 적합한 파일명을 생성할 수 없는 경우 null 포인터가 반환됩니다.
참고 사항
std::tmpnam
이 생성하는 이름은 추측하기 어렵지만,
std::tmpnam
이 반환된 시점과 프로그램이 반환된 이름을 사용하여 파일을 생성하려는 시점 사이에 다른 프로세스에 의해 해당 이름을 가진 파일이 생성될 가능성이 있습니다. 표준 함수
std::tmpfile
과 POSIX 함수
mkstemp
는 이 문제가 없습니다(표준 C 라이브러리만 사용하여 고유 디렉터리를 생성하려면 여전히
tmpnam
의 사용이 필요합니다).
POSIX 시스템은 추가로 유사한 이름의 함수
tempnam
를 정의하며, 이 함수는 디렉터리 선택 옵션을 제공합니다(기본값은 선택적으로 정의된 매크로
P_tmpdir
입니다).
예제
#include <cstdio> #include <iostream> #include <string> int main() { std::string name1 = std::tmpnam(nullptr); std::cout << "temporary file name: " << name1 << '\n'; char name2[L_tmpnam]; if (std::tmpnam(name2)) std::cout << "temporary file name: " << name2 << '\n'; }
가능한 출력:
temporary file name: /tmp/fileDjwifs temporary file name: /tmp/fileEv2bfW
참고 항목
|
임시 파일을 생성하고 열며 자동 삭제되는 파일
(함수) |
|
|
(C++17)
|
임시 파일에 적합한 디렉토리를 반환함
(함수) |
|
C documentation
for
tmpnam
|
|