Program Tip

C ++ 파일 처리 : ios :: app과 ios :: ate의 차이점은 무엇입니까?

programtip 2021. 1. 10. 19:28
반응형

C ++ 파일 처리 : ios :: app과 ios :: ate의 차이점은 무엇입니까?


파일에 쓸 때 ios::ate의 차이점은 무엇입니까? 제 생각에는 파일 내 에서 이동할 수있는 기능을 제공하는 반면 파일 끝에서만 읽기 / 쓰기가 가능합니다. 이 올바른지?ios:app
ios::appios::ate


그 반대입니다. ios::ate설정, 초기 위치는 파일의 끝이 될 것입니다,하지만 당신은 그 이후 추구 무료입니다. ios::app설정되고, 전체 출력 동작은 파일의 끝에서 수행된다. 모든 쓰기는 탐색이 암시 적으로 선행되기 때문에 다른 곳에 쓸 방법이 없습니다.


다음과 같이 지정됩니다 (C ++ 11의 27.5.3.1.4).

app 매번 쓰기 전에 끝내려고

ate 개봉 후 즉시 종료하십시오.

ios::app파일의 쓰기 위치하는 "끈끈한"입니다 - 모든 쓰기는 결국, 당신이 찾는 상관없이에 있습니다.


여기에 꽤 잘 문서화되어 있습니다 .

ios::ate "개봉시 스트림의 위치 표시기를 스트림의 끝으로 설정합니다."

ios::app "각 출력 작업 전에 스트림의 위치 표시기를 스트림의 끝으로 설정합니다."

이것은 ios::ate파일을 열 때 위치가 파일의 끝에 놓이는 차이를 의미합니다 . ios::app대신 스트림을 플러시 할 때마다 파일 끝에 배치합니다. 예를 들어 동일한 로그 파일에 기록하는 두 프로그램이 ios::ate프로그램을 연 이후 다른 프로그램이 파일에 추가 한 모든 내용을 덮어 쓰게됩니다 . ios:app대신 프로그램이 로그 항목을 추가 할 때마다 파일 끝으로 이동합니다.


앱:

포인터를 움직일 수 없습니다.

먹었다:

레코드 포인터를 다른 위치로 이동할 수 있습니다.


ios::ate옵션은 입력 및 출력 작업용이며 ios::app파일 끝에 데이터를 추가 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/10359702/c-filehandling-difference-between-iosapp-and-iosate

반응형