LoginSignup
1
1

More than 5 years have passed since last update.

バッファ等の分割処理

Last updated at Posted at 2015-07-16

ほにゃららwrite()とかを分割するパーツです。

splitter.c
/* Splitter */

#include <stdio.h>

#define     DEBUG_PRINT(...)    printf(__VA_ARGS__)

static void splitter(size_t total_size, size_t split_size)
{
    size_t offset = 0;
    size_t length = split_size;

    DEBUG_PRINT("\nTotal=%u, Split=%u\n", total_size, split_size);

    while (offset < total_size) {
        if (offset + length > total_size) {
            length = total_size - offset;
        }
        /* ex. write() */
        DEBUG_PRINT("  Offset=%d, Length=%d\n", offset, length);
        offset += length;
    }
    return;
}

/* Test Driver */
int main(void)
{
    splitter(   0, 1000);
    splitter(1000, 1000);

    splitter(2000,  999);
    splitter(2000, 1000);
    splitter(2000, 1001);

    return 0;
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1