file size

dreamer의 이미지

if ((fp = fopen("aaa", "wb")) == NULL)
    {
        perror("open error");
        exit (1);
    }
length = 0x8000000;
fseek(fp, length - 1, SEEK_SET);
fwrite(&zero, 1, 1, fp);


처럼 해서 128M 파일을 만들었습니다.
/hddb에 100개를 만들었습니다.물론 파일 이름은 다르게요
그런데
df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hdb1             39516244    283796  37225128   1% /hddb

처럼 실제로 사용된 것 처럼 나오지는 않는데, 왜 이런가요.
is -l을 해 보면 실제 128M의 파일이 만들어 져 있습니다.
codebank의 이미지

# df -h
또는
# df -m
등을 해보시기 바랍니다.
/hddb에 만들어진 파일말고 다른 파일은 없었는지도 한번 체크해보시고요...
근데 무엇이 문제인지 정확하게 질문을 하시지 않는것 같네요.
128M짜리 파일이 100개있는데 실제로 사용된것처럼 나오지 않는다는 소리는
원래 283M는 사용중이었다는 수리인지...아니면 무슨의도로 위와같은 테스트를 하신건지가
궁금하군요.
그에따른 답변은 많이 틀릴 수가 있으니 테스트를 해야겠다고 생각한 이유와 초기의
디스크 상태와 파일이 만들어진 이후의 디스크 상태등을 좀더 구분해서 올려놓으시는게
어떨까 생각합니다.

------------------------------
좋은 하루 되세요.

owlet의 이미지

128M위치에 기록을 한다고 해서 실제로 0~128M까지의 공간을 할당하지는 않습니다.
중간에 기록하지 않은 부분은 비워두고 실제로 기록한 곳만 공간을 할당하기때문에 파일사이즈와 사용공간이 차이가 나는것입니다.

linux에서 ext2는 저런식으로 사용합니다만
vfat에서는 실제 공간을 모두 할당하는듯 하더군요..

dreamer의 이미지

실제 파일을 128M만큼 쓴것이 아니라, 파일의 크기만을 128M로 만든 것입니다
파일의 맨 마지막에만 '0'으로 채워 넣으면 파일의 크기는 원하는 것 만큼 만들 수 있는 트릭을 사용 했지요.
실제 'ls -l'을 해도 파일의 크기는 원하는 만큼 커짐을 알 수 있음니다.
그런데 df를 하면 그 파티션에서 차지 하는 파일의 크기만큼이 사용 된것으로 나타나야 되는데 그렇지가 않군요. 파티션에서 사용한 사이즈와 남은 사이즈를 체크할때 파일의 크기를 이용 하는것이 아니라 다른 방법을 쓰나 봅니다.
혹시 df 할때 적용 하는 방법은 무엇인가요?

pynoos의 이미지

그런 종류의 파일을 sparse file 이라고 합니다.

뛰어다니면서 기록한 놈들은 사실 파일 크기를 늘어나게하여도 정작 기록된 데이터는 크지 않습니다.

그 파일을 tar 한다고 가정합시다. tar는 압축이 아니므로 거의 크기가 비슷한 파일로 나오는데..

tar cvf aa.tar aaa

tar cvSf aa2.tar aaa

로 생성되는 aa.tar, aa2.tar 를 비교해보세요.
압축한것이 아님에도 크기는 훨씬 작게 나옵니다.

jenix의 이미지

http://www-903.ibm.com/kr/techinfo/pseries/tech/techdoc5.html

이것도 괜찮은 참고가 되겠네요 :)

---------------------------------------------------------------------------
http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 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>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 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>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 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>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.