Как я могу обернуть эту проверку набора / unset / unset / unset?

Я не держал бы пари на нем, особенно на занятой многопоточной системе, или если бы местоположение свалки находится на сетевой акции (незабываемо, преподаватель произвел бы основные файлы на 8 ГБ, которые должны были быть spooled Ethernet на более чем 10 мегабит через NFS). Атомарность файловой системы обычно требует блокировки или выполнения команды write-to-a-temporary-file-and-then- rename (1) . Некоторые углубляющиеся в fs/coredump.c для ядра linux 4,3,3 указывают на отсутствие таких трюков с блокировкой или переименованием, так как ядро определяет имя файла для использования (с условием несвязки гонки!), а затем инициализирует файл:

        file_start_write(cprm.file);
        core_dumped = binfmt->core_dump(&cprm);
        file_end_write(cprm.file);

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

-121--12â9-

GRUB не знает, что вы удалили /boot . Во время процесса загрузки GRUB загружается задолго до ядра и всегда должен выяснить, что происходит без удобства вещей, таких как смонтированные файловые системы. При установке GRUB указывается, где (как в разделе BIOS или EFI) найти файл конфигурации. Файл /etc/fstab загружается и монтируются файловые системы только после передачи GRUB ядру.

-121--157299-

Похоже, что нет реальной альтернативы команде gnu time . Итак, в конце концов я установил именно это. На OS X gnu-time можно установить с помощью homebrew: brew install gnu-time . После этого загрузка ЦП для конкретной команды может быть измерена с помощью gtime . Тест показывает, что моя программа действительно выполняется одновременно: 1 .73user 0 .13system 0: 01.61effaxed 115% CPU .

0
13.11.2018, 17:55
1 ответ

Использовать косвенность:

function f() { if [ -z "${!1+x}" ]; then echo "$1 is unset"; else echo "$1 is set"; fi };

Это проверяет переменную, названную первым параметром функции. Вы можете захотеть -проверить работоспособность, чтобы пользователь предоставил аргумент функции.

3
28.01.2020, 02:16

Теги

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