mmap

    0

    1답변

    C++에서 직접 npy 파일 (numpys mmap 형식)을 읽으려고했지만 몇 가지 어려움이 있습니다. 파일은 numpy를 사용하여 작성되었으며 numpy를 사용하여 쉽게 다시 읽을 수 있습니다 (손상되지 않았으므로). 첫 번째 시도는 cnpy 패키지 (https://github.com/rogersce/cnpy)를 직접 사용했지만 파일 헤더의 크기에 관한

    1

    1답변

    float32 값을 포함하는 매우 큰 파일을 메모리에 매핑하기 위해 mmap을 사용하는 Go 프로그램을 작성하려고합니다. 이것은 다음과 같은 오류 메시지와 함께 실패 package main import ( "fmt" "os" "syscall" "unsafe" ) func main() { fileName :

    0

    2답변

    프로그램을 작성했으며 성능 문제가 있습니다. void getlinesplit(const char *file, unsigned int &pos, tline &vline) { vline.clear(); unsigned int debut_du_mot = 0; unsigned int i = 0; while (file[pos+

    3

    1답변

    디바이스 랩핑 라이브러리 (Linux의 경우)의 효과적인 유닛 테스트를 수행하기 위해 C로 메모리 맵핑 된 디바이스를 모의하고 싶습니다. 이제 나는 상기 장치의 모의를 나타낼 수있는 사용자 공간으로 파일 설명자를 mmap 수 있습니다. AFAICT, 제 질문은 다음과 같습니다. 사용자 공간에서 mmap이 작동하고 읽기 및 쓰기가 적절한 콜백으로 처리되는 파

    3

    1답변

    매우 큰 파일 150GB가 있습니다. 나는 읽기 전용 mmap을 사용하고 파일로 이진 검색을 수행합니다. 현재 이진 검색은 매우 느립니다. 그러나 나는 최적화를 생각하고있다. (디스크 찾기와 같은) 어떤 값을 체크 할 때,이 값은 "디스크"블록에 속하기 때문에이 값은 이미 메모리에있다. 파일의 다른 위치로 점프하는 대신 "가까운"값을 확인하고 그 후에 점프

    -1

    2답변

    64 비트 Linux x86입니다. syscall 기능을 사용하여 mmap syscall을 실행해야합니다. mmap 콜 번호는 9이다 : 그러나 printf("mmap-1: %lli\n", syscall(9, 0, 10, 3, 2 | 32, -1, 0)); printf("mmap-2: %lli\n", mmap( 0, 10, 3, 2 | 32, -1, 0

    2

    2답변

    이제 크기가 1.5GB보다 큰 대용량 파일로 작업하고 있습니다. 그래서 File::Map을 사용했습니다. 입력이 2.1 GB 스크립트보다 큰 경우 오류 Use of uninitialized value $count in print at file.pl line 16.을 표시하지 못했습니다. 내가 모듈없이 시도 동시에 use warnings; use stric

    0

    1답변

    http://man7.org/linux/man-pages/man2/mmap.2.html는 MAP_ANONYMOUS The mapping is not backed by any file; its contents are initialized to zero. 은 왜 제로로 내용을 초기화 할 필요가있다라고? 나는 이것이 꽤 비싸다고

    1

    1답변

    나는 PCI BAR0을 통해 FPGA 메모리에 액세스해야하는 프로젝트에서 일하고 있습니다 사용자 공간. 내가 나이가 커널에서 수행하는 데 사용 무엇 는 /SYS/버스/PCI/장치/my_device/에있는 다음을 노출하는 의 mmap() 기능을 사용한다 resource0라는 이름의 파일 열려 FPGA 메모리를 사용자 공간에 할당합니다. 커널 버전 4.7 (아

    2

    1답변

    실제 주소가 부여되었습니다. 구체적으로는 0x000000368d76c0입니다. 나는 내 프로그램에 mmap하려고하고있다. 내가 mmap에 실패를 얻을이 코드를 실행하면 내가 사용하는 코드는 어떤 이유로 void *mmap64; off_t offset = 0x000000368d76c0; int memFd = open("/dev/mem", O_RDWR);