#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <sys/stat.h>
void main()
{
int h1,h2;
int len;
char *buf;
h1=open("data.in",O_READ|O_BINARY,S_IWRITE|S_IREAD);
if(h<0){return;}//не смогли открыть
lseek(h1,0,SEEK_ENS);//перейти в конец файла
len=tell(h1);//получить размер
lseek(h1,0,SEEK_SET);//вернуться в начало файла
buf=(char *)malloc(len+1);//выделим буфер
if(buf==NULL){close(h1);return;}//не смоглы выделить необходимое кол-во памяти
read(h1,buf,len);//читаем файл
close(h1);
//....
// что-то делаем с данными
//
h2=open("data.out",O_CREAT|O_TRUNC|O_WRITE|O_BINARY,S_IWRITE|S_IREAD);
if(h2<0){free(buf);return;}//не смогли создать файл
write(h2,buf,len);
close(h2);
free(buf);
}
я сделал бы вот как-то так :)