mkstemp 예제

By 2019. augusztus 2. Egyéb No Comments

컴퓨팅에서 mkstemp는 임시 파일을 만들기 위한 POSIX 함수입니다(파일을 열었던 프로그램이 파일을 닫거나 종료할 때 일반적으로 존재하지 않는 컴퓨터 파일). [1] 임시 파일의 위치와 생성된 파일 이름의 접두사를 결정하는 인수를 수락합니다. [1] mkstemp가 단일 UNIX 사양에 추가된 후 함수 tempnam()이 더 이상 사용되지 않았습니다[1] 후자는 호출자가 호출한 시간 내에 다른 스레드 또는 프로세스에 의해 동일한 이름의 임시 파일을 만들 수 있다는 위험을 감수했기 때문입니다. 임시 파일 이름을 가져오고 만들려고 시도합니다. [2] mkstemp는이 문제로 고생하지 않습니다. [3] mkstemp() 함수는 템플릿에서 고유한 임시 파일 이름을 생성하고 파일을 만들고 열고 파일에 대한 열린 파일 설명자입니다. mkostemp() 함수는 mkstemp()와 같으며, open(2)에 대해 플래그가 지정될 수 있는 차이는 플래그(예: O_APPEND, O_SYNC)에 지정될 수 있습니다. 더 일반적으로 mkstemp()의 POSIX 사양은 파일 모드에 대해 아무 말도 하지 않으므로 응용 프로그램은 mkstemp(및 mkostemp))를 호출하기 전에 파일 모드 생성 마스크(umask(2)참조)가 적절하게 설정되어 있는지 확인해야 합니다. mkstemp(), mkstemp64(), mkstemps(), mkstemps64()의 경우 이 버퍼는 결과 고유 파일 이름을 저장하는 데도 사용됩니다. mkstemps() : 표준화되지 않았지만 다른 여러 시스템에 나타납니다. 이 기능을 사용하여 파일 확장자를 생성된 이름의 일부로 지정하는 경우 period(.)는 무시할 문자 중 하나로 계산됩니다. 이것이 위의 예제에서 .txt 확장을 포함하기 위해 접미사 4를 사용하는 이유입니다.

성공시 mkstemp(), mkstemp64(), mkstemps(), mkstemps64(및 mkstemps64()는 새로 생성된 파일에 파일 설명기를 반환하고 이 파일의 이름으로 템플릿 버퍼를 로드합니다. 이러한 함수가 고유한 이름을 생성할 수 없는 경우 -1을 반환하고 errno를 설정하여 발생한 오류를 반영합니다. mkstemp가 errno를 설정하는 경우 지정되지 않으며 오류가 발생할 경우 errno의 값이 설정됩니다. [1] mkstemp, mkostemps, mkostemps – 고유 임시 파일을 만들 mkstemp() 함수는 템플릿의 파일 이름 부분이 최대 허용 파일 이름 길이를 초과하는지 여부를 확인하기 위해 확인할 필요가 없습니다. 여기서 mkstemps()는 고유한 파일 이름을 생성할 때 확장의 X만 대체합니다. 2의 접미사는 후행 X를 찾고 있을 때 xt를 무시하라고 지시하고 마침표 (.) 는 확장에서 X를 다른 확장과 분리하므로 후행 X가 하나만 교체됩니다. fd, temp_path = mkstemp() 인쇄 “파일에서 정보 보기 ” + temp_path os.write(fd, “일부 유용한 정보”) os.close(fd)는 mkstemps() 또는 mkstemps64()에 의해 생성된 파일 이름에 포함될 접미사의 길이를 지정합니다. mkstemps() 함수는 템플릿의 문자열에 접미사가 있는 문자를 포함한다는 점을 제외하면 mkstemp()와 같습니다. 따라서 템플릿은 형식 접두사XXXXXsuffix이고 문자열 XXXXXX는 mkstemp()에 대해 수정됩니다. mkstemp() 및 mkostemp(): 템플릿의 마지막 6개 문자는 XXXXXX가 아닙니다. 이제 템플릿이 변경되지 않습니다. 다음 코드는 mkstemp 사용의 예입니다.

로컬 변수 파일 이름은 mkstemp에 의해 수정되며 새 파일에 대한 경로를 포함합니다:[4] mkstemp() 함수는 템플릿을 기반으로 고유한 파일 이름을 작성한다는 점에서 mkstemp() 함수와 유사합니다. 그러나 mkstemp()는 실제로 파일을 만들고 파일 설명자입니다. 생성된 파일의 이름이 템플릿에 저장됩니다.