tmpnam 예제

다음 예제에서는 접두사 파일과 함께 디렉터리 /tmp의 임시 파일에 대한 경로 이름을 생성합니다. 파일 이름을 만든 후 free() 호출은 파일 이름을 저장하는 데 사용되는 공간을 할당 합니다. 다음 예제에서는 tmpnam() 함수의 사용을 보여 주며 있습니다. tempnam() 함수를 사용하면 사용자가 디렉터리 선택을 제어할 수 있습니다. dir 인수는 파일을 만들 디렉터리 이름을 가리킵니다. dir이 null 포인터이거나 적절한 디렉터리 이름이 아닌 문자열을 가리키는 경우 헤더에서 P_tmpdir로 정의된 경로 접두사가 사용됩니다. 해당 디렉터리에 액세스할 수 없는 경우 구현 정의 디렉터리를 사용할 수 있습니다. TMP 환경 변수가 정의되고 유효한 디렉터리 이름으로 설정되면 TMP에서 지정한 디렉터리에 대해 고유한 파일 이름이 생성됩니다. 우리가 컴파일하고 다음과 같은 결과를 생성하기 위해 위의 프로그램을 실행하자 – 구현은 tempnam ()를 제외하고, IEEE Std 1003.1-2001의이 볼륨에 정의 된 함수가없는 것처럼 동작한다,tmpnam ()를 호출합니다. str이 null 포인터가 아닌 경우 str이 반환됩니다. 함수가 적합한 파일 이름을 만들지 못하면 null 포인터를 반환합니다.

. 반환 값은 임시 파일에 대해 제안된 이름을 포함하는 C 문자열에 대한 포인터입니다. str이 null 포인터인 경우 이 함수가 다음에 호출될 때 덮어쓰는 내부 버퍼를 가리킵니다. tmpnam() 함수는 “stdio.h” 헤더 파일 내부에 선언되는 특수 함수입니다. 최소 TMP_MAX 이름까지 호출될 때마다 다른 임시 파일 이름을 생성합니다. 여기서 TMP_MAX는 tmpnam() 함수에 의해 생성될 수 있는 다른 파일 이름의 최대 수를 나타냅니다. TMP_MAX 시간 이상으로 호출되는 경우 동작은 구현에 따라 다릅니다. 여기서, L_tmpnam은 tmpnam의 결과를 보유하기 위해 char의 배열에 필요한 크기를 정의합니다. str – 이것은 제안 된 tempname이 C 문자열로 저장됩니다 문자의 배열에 대한 포인터입니다. _tempnam은 다음 규칙에 의해 선택된 디렉터리에 대해 고유한 파일 이름을 생성합니다: TMP 환경 변수가 없거나 TMP가 유효한 디렉터리인 경우 파일 이름에 사용되는 경로dir입니다.

tmpnam 및 _wtmpnam에서 반환된 포인터는 내부 정적 버퍼를 가리킵니다. 이러한 포인터를 할당 해제하기 위해 free를 호출해서는 안됩니다. _tempnam 및 _wtempnam에 의해 할당 된 포인터에 대 한 호출 해야 합니다. TMP 환경 변수가 정의되지 않았거나 존재하지 않는 디렉터리 이름으로 설정된 경우 _tempnam은 dir 매개 변수를 고유한 이름을 생성하는 경로로 사용합니다. tmpnam의 경우 이 생성된 파일 이름을 str에 저장할 수 있습니다. str이 NULL이면 tmpnam은 결과를 내부 정적 버퍼에 둡트합니다. 따라서 후속 호출은 이 값을 삭제합니다. tmpnam에 의해 생성된 이름은 프로그램에서 생성된 파일 이름으로 구성되며, tmpnam에 대한 첫 번째 호출 후 기본 32(STDIO에서 TMP_MAX)에서 순차적 숫자의 파일 확장명으로 구성됩니다. H는 32,767)입니다. 이러한 각 함수는 오류가 있는 경우 생성된 이름 또는 NULL에 대한 포인터를 반환합니다.

TMP_MAX 이상을 시도하면 오류가 발생할 수 있습니다(STDIO 참조) H) tmpnam으로 호출하거나 _tempnam을 사용하고 TMP 환경 변수 및 dir 매개 변수에 지정된 잘못된 디렉토리 이름이 있는 경우.


mid_admin