int fopen_exmaple(void)
{
unsigned char data[40], buf[40];
FILE *fRead, *fWrite;
int readPOS=0, readLen, writePOS=0, writeLen;
//Open input file
fRead = fopen("afewgood.dat", "rb");
if(fRead == NULL) return -1;
//Open output file
fWrite = fopen("afewgoodR.dat", "wb");
if(fWrite == NULL)
{
fclose(fRead);
return -2;
}
while(!feof(fRead))
{
memset(data, 0x00, sizeof(data));
readLen = fread(data, 1, 40, fRead);
if(readLen == 0) break;
fseek(fRead, readPOS, SEEK_SET);
readPOS += readLen;
memset(buf, 0x00, sizeof(buf));
memcpy(buf, data, 40);
writeLen = 40;
fwrite(buf, 1, writeLen, fWrite);
fseek(fWrite, writePOS, SEEK_SET);
writePOS += writeLen;
}
fclose(fRead);
fclose(fWrite);
sync();
return 0;
}
#include <fcntl.h>
#include <unistd.h>
int open_example(void)
{
unsigned char data[40], buf[40];
int fRead, fWrite;
int readPOS=0, readLen, writePOS=0, writeLen;
//Open input file
fRead = open("afewgood.dat", O_RDONLY);
if(fRead == '\0') return -1;
//Open output file
fWrite = open("afewgoodR.dat", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
if(fWrite == '\0')
{
close(fRead);
return -2;
}
while(1)
{
memset(data, 0x00, sizeof(data));
readLen = read(fRead, data, 40);
if(readLen == 0) break;
lseek(fRead, readPOS, SEEK_SET);
readPOS += readLen;
memset(buf, 0x00, sizeof(buf));
memcpy(buf, data, 40);
writeLen = 40;
write(fWrite, buf, writeLen);
lseek(fWrite, writePOS, SEEK_SET);
writePOS += writeLen;
}
close(fRead);
close(fWrite);
sync();
return 0;
}
'c' 카테고리의 다른 글
log파일 만들기 source (0) | 2023.02.07 |
---|---|
리눅스 IP충돌 체크 (0) | 2022.09.08 |
리눅스 정규식을 이용한 IP / Email 주소 체크 (0) | 2022.09.06 |
구조체 배열 인자로 넘겨서 채우기 (0) | 2022.08.11 |
리눅스 usb mount 예제 (0) | 2021.07.20 |