write_data

Digital Signal Processing Library

Voice Lab

Program name: write_data

Language: C

In file: file_lib.c

Objective: Write data to file.

Usage: int write_data(FILE *out_file, int data, int data_size);

Parameters:

  • out_file - FILE Pointer to open file to save data.
  • data - Data to write.
  • data_size - number of bytes to write - typically 2 bytes
Return:
  • count - should be equal to data_size, typically 2

Mathematical Description:

Comments: Routine is used to write data to file

User Comments

Code:

int write_data(FILE *out_file, int data, int data_length)
{
        int count;
        char c[8];

        switch(data_length) {
        case 1:
                c[0] = 0xFF & data;
                count = fwrite(&c, sizeof(char), data_length, out_file);
                break;
        case 2:
                c[0] = 0xFF & data;
                c[1] = 0xFF & (data >> 8);
                count = fwrite(&c, sizeof(char), data_length, out_file);
                break;
        case 3:
                c[0] = 0xFF & data;
                c[1] = 0xFF & (data >> 8);
                c[2] = 0xFF & (data >> 16);
                count = fwrite(&c, sizeof(char), data_length, out_file);
                break;
        case 4:
                c[0] = 0xFF & data;
                c[1] = 0xFF & (data >> 8);
                c[2] = 0xFF & (data >> 16);
                c[3] = 0xFF & (data >> 24);
                count = fwrite(&c, sizeof(char), data_length, out_file);
                break;
        default:
                fprintf(stderr, "Data_length out of range:(%d)! What to do?\n", data_length);
                exit(1);
        }

        return(count);
}