agentsclimarketplace

C heap file chunk iterator implementation

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/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

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill c-heap-file-chunk-iterator-implementation

Assembled 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

  1. Block Assumption: Assume all blocks are full except the last one.
  2. Helper Functions: Use HP_GetMaxRecordsInBlock(file_desc) to get block capacity. Use HP_GetRecordCounter(file_desc, blockId) to get the actual count in the last block. Use HP_GetRecord(file_desc, blockId, cursor, record) to retrieve data.
  3. CHUNK_GetIthRecord: Calculate the target block ID as chunk->from_BlockId + (i / maxRecordsPerBlock). Calculate the cursor as i % maxRecordsPerBlock. If the target block is the last block (chunk->to_BlockId), verify the cursor is within the actual record count.
  4. CHUNK_GetNextRecord: Maintain currentBlockId and cursor. Increment cursor after fetching. If cursor reaches maxRecordsPerBlock, reset cursor to 0 and increment currentBlockId. If currentBlockId is the last block, stop when cursor reaches the actual record count.
  5. CHUNK_GetNext: Calculate to_BlockId based on blocksInChunk. Sum records: full blocks use maxRecordsPerBlock, the last block uses HP_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.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.