[re] fat32형식에서 usb로 콘솔프로그램을 실행시키고 usb폴더에 저장을 하려고 합니다..그런데 40만바이트 이상 저장이 되면 에러가 발생합니다.
콘솔로 프로그램 짠 소스입니다. usb에 폴더에 저장하는 프로그램입니다.
처음부터 저장 잘하는데 19번째 저장중에 커널 패닉이 납니다.
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
char message[11];
char m_sur[400002];
char path[30]="/mnt/concel/";
char test[2];
int fd;
fputs("input file:", stdout);
fgets(message, sizeof(message), stdin);
memcpy(path+12, message, sizeof(message));
int i, j;
for(i=0;i<1;i++)
{
for(j=0;j<10;j++)
{
path[17] = j + '0';
int fin;
fin = open(path, O_WRONLY | O_SYNC | O_CREAT, 0777);
if(fin != -1)
{
int a;
for(a=0;a<400000;i+=1024)
{
if(i+1024 < 400000)
write(fin, m_sur+a, 1024);
else
write(fin, m_sur+a, 400000-a);
usleep(100);
}
write(fin, test, 2);
close(fin);
usleep(1000);
}
}
}
return 0;
}
콘솔 테스트 프로그램입니다. 리눅스 피시에서는 당연히 잘 될구요..
18번째 저장할 때 커널 패닉이 납니다.
1~14번까지 저장 잘 하다가
attempt to access beyond end of device
sda1 : rw = 0, want = 67115554, limit = 522464
에러 화면이 나오구요...
3번더 저장이 되구
커널 패닉이 납니다....도대체 무슨 문제일가요?
커널에 버그이면 어떻게 해결해야 하나요?
FAT32의 자체의 용량제한은 아닐까요?
FAT32 환경에서 단일파일의 경우 4기가정도의 용량제한이 있는데 혹시 그것관 연관이 없을런지.
혹시 가능하시다면 NTFS에 시도해보시길.
댓글 달기