구조체에서 파일로 내 보낸 다음 해당 파일을 mmap()합니다. 하나의 문제는 구조체가 문자열 인 멤버 변수를 가지고 있으며 mmap이 어떻게 처리 할 지 확신 할 수 없다는 것입니다. 이 경우 모든 문자열은 동일한 크기 (8 자)입니다. 나는 리눅스 mmap() 함수를 복제하기로되어있는 온라인에서 찾을 수있는 mmap() 함수를 사용하고 있지만, 윈도우에서 일하고있다.구조체를 파일로 내보내고 파일을 메모리 맵핑하는 방법은 무엇입니까?
struct testStruct
{
string testString;
unsigned int testInt;
unsigned int tsetArr[9];
};
은 그것이 개체를 sizeof()의 반환 값을 정의 할 수있다 : 같이
구조체 자체
정의 되는가?구조체 데이터가 포함 된 파일을 mmapping 할 수 있습니까?
구조체를 파일로 내보내고 mmap하면 어떤 코드를 사용해야합니까?
감사합니다. 모든 문자열에 같은 문자 수 (8)가 있다고 가정하면 문자열 벡터를 메모리 맵핑 할 수 있습니까? – Tristan
@Tristan :'std :: vector'는'std :: string'과 같은 문제가 있습니다 : 그것은 힙에 내용을 할당합니다 (그리고 성장을 위해 필요하다면 위치를 바꿀 수도 있습니다). 2-d 배열 (일부 컴파일시 상수'N '의 경우 char [N] [8])이 작동해야합니다. –
다시 한번 감사드립니다. mmap에 8 문자 문자열의 파일을 2-d 배열로 읽은 다음 그 N 항목 각각에 문자열로 액세스하는 가장 빠른 방법은 무엇입니까? 속도가 중요하므로 수십만 개의 항목을 다루게 될 것입니다. – Tristan