Добавить в скрипт подтверждение для nohup... & с помощью ввода

Ограничения по размеру применяются только при выделении статических буферов. gethostbyname(3), который анализирует записи в /etc/hosts, не выделяет статические буферы -и никогда не выделял. Первоначальный выпуск BSD 4.3 1983 года показывает открытый -файл, в то время как строка синтаксического анализа закрывает шаблон -файла :

.

sethostent(0);
while (p = gethostent()) {
    if (strcmp(p->h_name, name) == 0)
        break;
    for (cp = p->h_aliases; *cp != 0; cp++)
        if (strcmp(*cp, name) == 0)
            goto found;
}
found:
endhostent();

Современные реализации сохраняют это наследие во всех основных аспектах.

В любом случае, внутри семейства функций *hostentхранится файловый указатель на текущую строку в файле. sethostentоткрывает файл и устанавливает положение указателя файла. gethostentполучает данные и перемещает указатель. endhostentзакрывает указатель файла. Библиотека GNU C предлагает подробный справочник по этим функциям.

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

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

-1
20.07.2020, 16:17
1 ответ

Вы можете сделать что-то вроде этого:

echo "" | sh script.sh

По умолчанию эхо добавляет символ новой строки в конец строки -, что в основном вам и нужно.

1
18.03.2021, 23:18

Теги

Похожие вопросы