MMap native library

This commit is contained in:
eli
2026-01-26 08:05:00 +00:00
commit 033bbe2512
9 changed files with 1749 additions and 0 deletions

40
test.ts Normal file
View File

@@ -0,0 +1,40 @@
// test.ts
import * as fs from 'node:fs';
import mmap from './lib/index.js';
const FILE_PATH = './test_mmap.bin';
const FILE_SIZE = 4096;
// 파일 생성
const fd = fs.openSync(FILE_PATH, 'w+');
fs.ftruncateSync(fd, FILE_SIZE);
// mmap 매핑
const buffer = mmap.map(
FILE_SIZE,
mmap.PROT_READ | mmap.PROT_WRITE,
mmap.MAP_SHARED,
fd,
0
);
console.log('Mapped buffer length:', buffer.length);
console.log('Page size:', mmap.pageSize());
// 데이터 쓰기
buffer.write('Hello, mmap!', 0, 'utf8');
buffer.writeUInt32LE(12345, 100);
// msync
mmap.sync(buffer, 0, FILE_SIZE, mmap.MS_SYNC);
console.log('Data synced to disk');
// 데이터 읽기
console.log('String:', buffer.toString('utf8', 0, 12));
console.log('Number:', buffer.readUInt32LE(100));
// 정리
fs.closeSync(fd);
fs.unlinkSync(FILE_PATH);
console.log('Test passed!');