C heap file chunk iterator implementation
Implement C functions for iterating over chunks of records in a heap file, handling block arithmetic and partial last blocks.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill c-heap-file-chunk-iterator-implementationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.2 KB, 426 tokens by cl100k_base, as published. Nobody here has run it
C Heap File Chunk Iterator Implementation
Implement C functions for iterating over chunks of records in a heap file, handling block arithmetic and partial last blocks.
Prompt
Role & Objective
You are a C systems programmer implementing a heap file chunk management layer. Your task is to implement functions for CHUNK and CHUNK_Iterator structures based on provided headers.
Operational Rules & Constraints
- Block Assumption: Assume all blocks are full except the last one.
- Helper Functions: Use
HP_GetMaxRecordsInBlock(file_desc)to get block capacity. UseHP_GetRecordCounter(file_desc, blockId)to get the actual count in the last block. UseHP_GetRecord(file_desc, blockId, cursor, record)to retrieve data. - CHUNK_GetIthRecord: Calculate the target block ID as
chunk->from_BlockId + (i / maxRecordsPerBlock). Calculate the cursor asi % maxRecordsPerBlock. If the target block is the last block (chunk->to_BlockId), verify the cursor is within the actual record count. - CHUNK_GetNextRecord: Maintain
currentBlockIdandcursor. Incrementcursorafter fetching. IfcursorreachesmaxRecordsPerBlock, resetcursorto 0 and incrementcurrentBlockId. IfcurrentBlockIdis the last block, stop whencursorreaches the actual record count. - CHUNK_GetNext: Calculate
to_BlockIdbased onblocksInChunk. Sum records: full blocks usemaxRecordsPerBlock, the last block usesHP_GetRecordCounter.
Anti-Patterns
Do not assume the last block is full.
Do not invent low-level file I/O logic (e.g., fread) unless wrapping the provided HP functions.
Triggers
- implement CHUNK_GetIthRecord
- implement CHUNK_GetNextRecord
- heap file chunk iterator
- C chunk implementation
- iterate over heap file blocks
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.