fat32형식에서 usb로 qt프로그램을 실행시키고 usb폴더에 저장을 하려고 합니다..그런데 40만바이트 이상 저장이 되면 에러가 발생하…

falhed의 이미지

qt4 프로그램을 usb폴더에 옮겨 놓고 자동 마운트, 자동 실행까지 성공했습니다.
그런데 10만 2바이트를 현재 년, 시간 받아와서 파일 이름으로 만들고 저장을 하려고 합니다.
문제는 5번째 파일을 저장중에 임베디드 보드 커널 패닉이 납니다.ㅠㅠ 콘솔로 프로그램 해도 똑같이 안 되더라구요.ㅠㅠ
free 명령어를 보니
free 메모리 량이 계속 떨어지더라구요.. used는 증가하구요....
usleep으로 딜레이도 주고, 시스템 콜 함수를 사용하여 pdflush를 실행도 시키고 다 해봤는데 똑같은 현상이 발생합니다.ㅠㅠ
ps하니 pdflush 데몬이 47, 48번 이더라구요...ㅠㅠ
한달내 삽질하고 있는데 도저히 해결 방법을 못 찾겠습니다..ext2도 안 되더라구요..ㅠㅠ
void YouTubeD::SUFileSave()
{
QString fi = "/mnt/1203/select/acdata/S";
QString str= "";
QString ta = "";
char m[1025];
QDate dt = QDate::currentDate();
str = tr("%1").arg(dt.year());
str = str.mid(2, 2);
ta.sprintf("%#2.2d", dt.month());
str.append(ta);
ta.sprintf("%#2.2d", dt.day());
str.append(ta);

fi += str;
fi += "_";

QTime ti = QTime::currentTime();
QString tim="";
ta.sprintf("%#2.2d", ti.hour());
tim.append(ta);
ta.sprintf("%#2.2d", ti.minute());
tim.append(ta);
ta.sprintf("%#2.2d", ti.second());
tim.append(ta);

tim += ".bin";
fi += tim;
sprintf(m, "%s", fi.toAscii().data()); char m_test[2];
long lp;
m_test[0]=m_Relay;
m_test[1]=0xff;

int fp = open(m, O_WRONLY | O_CREAT | O_TRUNC | O_SYNC, 0777);
printf("file save start\n");
if(fp)
{
write(fp,m_sur, 10000);
fsync(fp);
}
::close(fp);
::sync();
lp = syscall(47);
lp = syscall(48);
}

int k;
for(k=1;k<10;k++)
{
fp=open(m, O_WRONLY | O_APPEND | O_SYNC);
if(fp)
{
printf("save index : %d\n",k);
write(fp, m_sur+(k*10000), 10000);
::close(fp);
lp = syscall(47);
lp = syscall(48);
}
}
fp=open(m, O_WRONLY | O_APPEND | O_SYNC);
write(fp,m_test, 2);
::close(fp);
lp = syscall(47);
lp = syscall(48);
printf("file save end\n");
}
제발..아시는분 답변 부탁드립니다.ㅠㅠ

bushi의 이미지

커널 버그 같습니다.
O_TRUNC 사용을 하지않도록 다시 작성해서 시험해보세요.

OTL

falhed의 이미지

현재 usb 파일 저장만 작년 12월부터 계속 하고 있습니다. 40만 2바이트를 저장하는데 콘솔 프로그램은 20번째 저장만 하면 커널 패닉이 나네요...ㅠㅠ

free하면 used 메모리 부분이 계속 감소하다가 커널 패닉이 납니다.

이 상황이면 커널 부분에서 어디 부분을 수정해야 할 까요? 거의 밤새 하다 시피하는데 혹시 아시는 분은 답변 부탁드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.