Си. Помогите переделать функцию на низкоуровневый ввод-вывод

Есть рабочая функци, которая записывает структуру в файл. На вход функция получает наименование файла(filename), массив структур(st) и число (количество структур, n).

int save(char* filename, struct Employee* st, int n)
{
    FILE* fp;
    char* c;

    // число записываемых байтов
    int size = n * sizeof(struct Employee);

    if ((fp = fopen(filename, "wb")) == NULL)
    {
        perror("Error occured while opening file");
        return 1;
    }
    // записываем количество структур
    c = (char*)&n;
    for (int i = 0; i < sizeof(int); i++)
    {
        putc(*c++, fp);
    }

    // посимвольно записываем в файл все структуры
    c = (char*)st;
    for (int i = 0; i < size; i++)
    {
        putc(*c, fp);
        c++;
    }
    fclose(fp);
    return 0;
}

Нужно эту функцию переделать на использование только низкоуровневых функций файлового ввода-вывода. То есть open/close/read/write, а не fopen/fclose.


Ответы (0 шт):