Есть ли ограничение на количество открытых файлов в Windows?

Я открываю много файлов с помощью fopen () в VC ++, но через некоторое время она перестает работать.

Есть ли ограничение на количество файлов, которые вы можете открывать одновременно?


Библиотеки времени выполнения C имеют ограничение в 512 для количества файлов, которые могут быть открыты одновременно. Попытка открыть больше, чем максимальное количество файловых дескрипторов или файловых потоков приводит к сбою программы. Используйте _setmaxstdio , чтобы изменить это число. Более подробную информацию об этом можно прочитать здесь.

Также вам может потребоваться проверить, поддерживает ли ваша версия Windows верхний предел, который вы пытаетесь установить с помощью _setmaxstdio . Для получения дополнительной информации о _setmaxstdio проверьте здесь

Информацию по теме, соответствующей VS 2015, можно найти здесь


Если кто-то еще не понимает, к чему применяется ограничение, я считаю, что это ограничение для каждого процесса, а не для всей системы.

Я просто написал небольшую тестовую программу, чтобы открывать файлы до тех пор, пока она не выйдет из строя. До сбоя он достигает 2045 файлов (2045 + STDIN + STDOUT + STDERROR = 2048), затем я оставил его открытым и запустил еще одну копию.

Вторая копия показала такое же поведение, то есть у меня было на одновременно открывается не менее 4096 файлов.


Если вы используете стандартный C /C ++ POSIX библиотеки с Windows, ответ «да», есть предел.

Однако, что интересно, ограничение налагается типом библиотек C/C ++, которые вы используете.

Я наткнулся на следующую ветку JIRA (http://bugs.mysql.com/bug.php?id=24509) из MySQL. Они столкнулись с той же проблемой, связанной с количеством открытых файлов.

Однако Пол Дюбуа объяснил, что проблему можно эффективно устранить в Windows, используя …

Вызовы Win32 API (CreateFile (), WriteFile () и т. д.), а максимальное количество открытых файлов по умолчанию было увеличено до 16384. Максимальное количество может быть увеличено с помощью параметра —max-open -files = N параметр при запуске сервера.

Естественно, вы можете иметь теоретически большое количество открытых файлов, используя технику, аналогичную объединению соединений с базой данных, но при этом серьезно сказывается на производительности.

Действительно, открытие большого количества файлов может быть плохим дизайном. Однако в некоторых ситуациях это необходимо. Например, если вы создаете сервер базы данных, который будет использоваться тысячами пользователей или приложений, серверу обязательно придется открывать большое количество файлов (или снижать производительность при использовании методов объединения файловых дескрипторов).


Да, есть ограничения в зависимости от уровень доступа, который вы используете при открытии файлов. Вы можете использовать _getmaxstdio , чтобы найти ограничения, и _setmaxstdio , чтобы изменить ограничения.

1


Я не знаю, откуда Пауло взял это число. В операционных системах на базе Windows NT количество дескрипторов файлов, открытых для каждого процесса, в основном ограничено физической памятью — определенно исчисляется сотнями тысяч.

1


Возникла та же проблема, но с использованием Embarcadero C ++ — Builder RAD Studio 10.2. Среда выполнения C этой штуки, похоже, не предоставляет _getmaxstdio или _setmaxstdio , но некоторые макросы и их предел по умолчанию намного ниже, чем здесь сказано для других сред выполнения:

stdio.h:

 /* Количество файлов, которые могут быть открыты одновременно */# если определено (__ STDC __) #  define FOPEN_MAX (_NFILE _) # else # define FOPEN_MAX (_NFILE _) #define SYS_OPEN (_NFILE _) # endif  

_nfile.h:

  #if defined (_WIN64) #define _NFILE_ 512 # else # define _NFILE_ 50 # endif  

1


Да, ограничение есть.

Ограничение зависит от ОС и доступной памяти.

В старый DOS ограничение составляло 255 одновременно открытых файлов.

В Windows XP предел выше (я считаю, что это 2048, как указано в MSDN).

1



Как открывать файлы Apple Numbers на ПК с Windows

Электронные таблицы, созданные в Apple Numbers, могут быть удивительными вещи, но их открытие в Excel на ПК с Windows — головная боль. Однако это можно сделать с небольшой помощью iCloud.

В этой статье мы покажем вам, как открывать и редактировать файлы .numbers в Windows. Читать далее: Как использовать Numbers для Mac

Что такое файл .numbers?

Numbers — это эквивалент Excel для Apple. Он поставляется с каждым новым Mac, а также доступен для бесплатной загрузки всем пользователям Mac через App Store.

Когда электронная таблица создается в Numbers, приложение сохраняет ее в формате файла .numbers. Это нормально, если вы собираетесь поделиться им с другими пользователями Mac, но это немного проблематично, когда дело доходит до Excel, поскольку приложение Microsoft не может напрямую открывать файлы .numbers.

Для этого ему нужно помощь веб-приложений Apple iCloud.

Как открыть файл .numbers на ПК с Windows

Чтобы привести ваш файл .numbers в узнаваемое для Windows состояние, вы ‘ Сначала мне нужно открыть его в версии Numbers для iCloud. Это бесплатная версия приложения Apple, доступ к которой вы получаете в Интернете, почти так же, как Office в Интернете или Google Docs..

Вам понадобится учетная запись iCloud, но если вы использовали iTunes, iPhone или iPad, то, возможно, она у вас уже есть.

iCloud использует Apple ID, поэтому, если у вас его нет, вам нужно быстро создать бесплатную учетную запись. Для этого посетите сайт создания Apple ID и следуйте инструкциям на экране. Мы также создали пошаговое руководство по изменению, созданию или сбросу Apple ID, в котором вы можете прочитать более подробную информацию. Читайте дальше: Альтернативы Numbers для Mac

Использование iCloud

Когда ваш Apple ID запущен и работает, пора переходить к открытию файла .numbers. Перейдите на сайт www.icloud.com и войдите в систему, используя свой Apple ID.

Теперь вы должны увидеть ряд приложений, доступных для использования, в том числе почту, календарь, фотографии, заметки, страницы и т. Д. и самое главное — числа.

Дважды щелкните последний а затем щелкните значок шестеренки в верхней части экрана, чтобы открыть раскрывающееся меню.

Вверху списка находится «Загрузить электронную таблицу». Выберите это, а затем перейдите к своему файлу .numbers и нажмите «Открыть».

Редактирование и совместное использование файла .numbers

Теперь, когда ваш файл .numbers открыт, вы можете выбрать либо отредактируйте его в онлайн-версии Numbers, которая подойдет для основных задач и просмотра электронной таблицы, либо экспортируйте его в формате, приемлемом для Excel.

Чтобы создать файл .xlsx, убедитесь, что что файл .numbers открыт, затем перейдите к значку гаечного ключа в правом верхнем углу экрана. Щелкните по нему, и появится раскрывающееся меню.

Выберите Загрузить Скопируйте и выберите Excel из списка форматов файлов.

Теперь Numbers преобразует файл в файл, который вы можете открыть и использовать в Excel.

Вот и все. Теперь вы можете жить счастливой жизнью с электронными таблицами и не можете разделить формат файла.

Оцените статью
clickpad.ru
Добавить комментарий