Это очень просто.
Внешняя команда echo
, которую вы запускаете из strace
, скорее всего, является командой GNU coreutils. Это написано на языке программирования C и использует функции библиотеки времени выполнения C, такие как putchar()
и fputs()
, для записи того, что необходимо для записи в стандартный вывод программы.
В языке C вывод на стандартный вывод может быть полностью буферизованным , строковым буферизованным или небуферизованным . Правила того, что происходит, на самом деле являются частью спецификации языка C, применяются во всех операционных системах и написаны в абстрактных терминах того, можно ли определить, что стандартный вывод «не относится к интерактивному устройству».
В операционных системах Unix и Linux конкретный способ их применения заключается в том, что стандартный вывод полностью буферизуется, если функция isatty()
говорит, что файловый дескриптор не является терминалом. Вот что такое «интерактивное устройство» в данном случае. В противном случае стандартный вывод в вашей операционной системе буферизуется строкой. Стандарт языка C не требует этого. Это то, что библиотека GNU C дополнительно документирует, что она делает, помимо того, что говорит стандарт языка C.
Таким образом, когда стандартный вывод вашей echo
команды является не терминалом, а файлом, библиотека C в программе буферизует все отдельные записи в стандартный вывод и выполняет один большой write()
вызов, когда буфер заполнен. или когда программа завершится. В то время как, когда стандартный вывод является терминалом, библиотека C только буферизует вещи до тех пор, пока не будет выведен символ перевода строки , после чего он write()
является содержимым буфера.
Отсюда наблюдаемые системные вызовы.
Удалить раздел наUnix/Linux
Загрузите ваш Kali Linux
. После этого напишите в терминале:
fdisk /dev/sdaWithYourUbuntuPartition
Введите символ d
. После входа попросите меня ввести номер раздела, который я хочу удалить. Предположим, мне нужно удалить 4-й раздел, тогда я ввожу «4». Все, раздел удален. Введите w
для записи всех изменений! Новые изменения будут работать только после очередной перезагрузки системы. Это легко понять из вывода ниже.
Как изменить размер вашего sda
проверьте здесь руководство:https://www.ryadel.com/en/resize-extend-disk-partition-unallocated-disk-space-linux-centos-rhel-ubuntu-debian/