|
FOPEN_MAX 는 fopen으로 최대 열수 있는 파일 핸들러의 수로 알고 있습니다.
FILE *fp[100];
for(i = 0; i < 100; i++)
{
fp[i] = fopen(filename[i], "at");
}
위와 같은 소스로 테스트시 C++ builder 의 경우 0~49번 까지 50개는 열리나 나머지는 NULL이 반환되더군요.
stdio.h 에서 FOPEN_MAX를 찾아 보니 50으로 정의 되어 있습니다.
하지만, 다른 Visual C++ 이나 윈도우즈용 gcc의 FOPEN_MAX는 20으로 정의 되어 있습니다.
최대 열수 있는 파일 핸들러의 수는 컴파일러가 아닌 OS의 제한으로 알고 있습니다.
그런데, 윈도우즈용 컴파일러임에 도 부구하고 FOPEN_MAX의 정의가 다른 이유가 무엇인지요?
실제 윈도우즈가 제한하는 최대 파일 핸들러의 수는 몇개 인지요?
만약 실제 윈도우즈가 제한하는 최대 파일 핸들러 수가 50개가 넘는 다면 stdio.h를 수정기만 하면 되는 것인지요?
윈도우즈가 제한하는 최대 파일 핸들러의 수를 조정하는 방법은 어떻게 되는지요?
|