Си. Помогите переделать функцию на низкоуровневый ввод-вывод
Есть рабочая функци, которая записывает структуру в файл. На вход функция получает наименование файла(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.