2012-11-23 6 views
0

크기가 다른 파일을 한 줄씩 읽는 프로그램이 있습니다. mmap을 사용하고 싶지만 파일을 한 줄씩 읽는 방법은 무엇입니까?mmap을 사용하여 파일을 한 줄씩 읽습니다.

답장을 보내 주셔서 감사합니다.

+0

당신이 프로그래밍하고 있습니까? –

+1

당신은 C++와 C라는 태그를 사용했습니다. 어느 것을 원하십니까? 그들은 다른 언어입니다. –

+0

oups 죄송합니다, 저는 C++로 프로그래밍하고 있습니다. – Arkerone

답변

5

당신이 mmap() 파일을 에드하면, 기존 메모리에서 적합한 스트림 버퍼 읽기 데이터 파일을 사용할 수 있도록 다음 std::getline() 사용할 수 있습니다 C 또는 C++에서

#include <streambuf> 
#include <string> 
#include <istream> 

struct membuf 
    std::streambuf { 
    membuf(char* start, size_t size) { 
     this->setg(start, start, start + size); 
    } 
}; 

int main() { 
    // mmap() the file yielding start and size 
    membuf  sbuf(start, size); 
    std:istream in(&sbuf); 
    for (std::string line; std::getline(in, line);) { 
     ... 
    } 
} 
관련 문제