티스토리 뷰

Proframe 4c, 5c 에서 제공하는 기능중 File IO를 사용할 때 주의할 점이 있다.


File IO 의 Read Buffer는 최대길이가 10240 (10kb) 로 고정되어 있다.


때문에 File IO 구조체를 만들때 총 길이가 10240을 이상일 경우 한번에 데이터를 못읽는 경우가 생긴다.

그리고 그 다음번 데이터를 읽을때 다음 전문의 시작부분이 아니라 소실된 데이터 부분부터 시작하기 때문에 담기는 데이터가 꼬이게 된다.


File IO의 Read Buffer 의 최대길이는 엔진소스에서 설정되기 때문에 해당 부분 변경을 위해서는 패치가 필요하기 때문에

부득이한 케이스를 제외하고는 AP 개발시에 사용하는 File IO 구조체의 총길이를 10240 미만으로 가져가야 한다. 


왜 이렇게 만들어놨을까 궁금했는데 생각해보니 Read 할 전문의 길이가 얼마나 될지 알수없는데 무작정 Read buffer를 늘려서 선점하기에는 메모리 낭비가 심하기 때문에 기본적으로 10kb로 설정해놓은 것 같다.


Write의 경우는 call 이전에 할당된 memory address를 받아 write 하기 때문에 길이 제한이 없다.



댓글