FOPEN으로 열수있는 최대 크기의 파일?

didibao의 이미지

펜티엄노트북 1.4, 512램을 가지고 있는데요, FOPEN으로 꽤 큰 파일을 열어봤는데 다 열리더라구요.

그래서 궁금한게 생겼는데,

1. FOPEN으로 제 컴퓨터에서 열 수 있는 최대 크기의 파일은 얼마인가요? 제한이 있나요?

2. 만약 제한이 있다면 그 보다 더 큰 파일이 있을 경우에는 어떻게 열 수 있죠?

ssehoony의 이미지

2기가 가 한계이고
그 이상은 플랫폼 마다 다릅니다.
어떤 플랫폼인지 말해주시면 다른분들이 도움드릴게 편할 것 같네요.
그리고 이와 관련해서 이미 다루어진적이 있으니 잘 검색해 보세요.

didibao의 이미지

플랫폼마다 다르다면 특정 플랫폼에서 얼만큼의 파일을 열 수 있는지, 외워서(?) 아는 건가요 아니면 제가 직접 어떻게 확인 해 볼 수 있나요?

그냥 일반 노트북인데 1.4기가 이고, 램은 512거든요. 리눅스도 쓰고 윈도우도 쓰는데 윈도우 쓰고 리눅스 쓸 때 열 수 있는 최대 파일 크기가 어떻게 되는지..

그리고 제가 어떤 솔라리스 9 계정(32비트머신)을 가지고 있는데 (제 커퓨터에서 리눅스를 사용한다고 했을때, 만약 리눅스에서 열 수 있는 파일이 더 크다면) 제 컴퓨터에서 사용하던 큰 파일은 솔라리스 제 계정으로 가져 가면 열 수 없는건가요?

그리고 아주 큰 한덩어리로 된 2기가 넘는 동영상 파일은 열 수 없나요?

초보에다 질문이 두서가 없어 죄송하네요. 이것저것 궁금한게 좀 많아서요..

ganadist의 이미지

리눅스(glibc)에서는 컴파일할 때 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 라고 하면 파일관련 함수들이 64bit offset용으로 교체되게 됩니다.(물론 해당 파일시스템에서 해당 크기의 파일을 지원해야 합니다.)

MacOSX에서는 특별한 옵션 없이도 64bit offset을 쓰게되어있는 것으로 알고있습니다.

솔라리스랑 윈도는 잘 모르겠네요;;

----
데스크탑 프로그래머를 꿈꾸는 임베디드 삽질러

didibao의 이미지

검색을 좀 해보니 비슷한 글이 올라왔었네요. 파일시스템이 ext2이면 2기가가 제한이라고... 그랬었군요.

그러면 제가 fopen 을 한다고 할 때 ext2 파일시스템을 쓰고 32비트 리눅스 머신을 쓴다면 램 크기에 상관없이 열 수 있는 크기는 2기가 이하로 동일한가요?

그런데 어떻게 2기가 인지 알 수 가 있는거죠? 혹시 프로그램을 짜서 돌려볼 수는 없는지..?

ssehoony의 이미지

ext2 파일 시스템에 관한 잘못된 글을 읽으셨군요.
ext2 는 2기가 이상도 파일이 생성됩니다.
(예전에 이런 잘못된 글이 있었고, "잘 못 됐다"고 리플도 달았던 기억이...)

플랫폼마다 다르다는건 fopen 혹은 fwrite 등으로 처리 할 수 있는 사이즈가 다른게 아니고 ansi 표준 함수인 fopen 등은 무조건 2기가 입니다.
(파일 위치를 처리하는 offset 이 signed long 형 이라서겠죠?)
표준이 아닌 방법으로 2기가 이상의 파일을 접근하기 위한 방법이 플랫폼 마다 다르다는 이야기지요.

그리고 파일사이즈 한계치는 파일시스템에 따라 다르므로 어떤 파일 시스템인지는 고려하면 되고, 해당 파일 시스템에 관련된 글을 찾아 보시면 도움이 되겠지요.

이런걸 조금씩 조금씩 접하시다보면, 함수를 처음 익힐때 이 함수가 ansi 표준인지 posix 표준인지 등 호환성에 대한걸 염두하게 되는 자신을 발견하게 될겁니다. ^^

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.