Все системные вызовы, которые появляются над вызовом close (3)
, происходят из-за загрузки динамической библиотеки. Похоже, он также проверяет любые кешированные динамически подключаемые библиотеки.
Системные вызовы для фактического удаления файла начинаются с вызова newfstatat ()
и включают 4 других системных вызова. 3 вызова close ()
и exit_group ()
- это среда выполнения C, выполняющая очистку после функции main ()
для rm
возвращается или выходит.
Немного отредактируем, это то, что заставляет людей желать статически связанных исполняемых файлов и пробовать различные вещи, такие как sta.li или Morpheus .
В bash
скриптах я обычно делаю так:
#!/bin/bash
if test "$0" != "$BASH_SOURCE"; then
SOURCED=1
MY_NAME=$BASH_SOURCE
else
SOURCED=0
MY_NAME=$0
fi
# do something here
if test "$SOURCED" = "1"; then
# use return instead of exit
return
fi
# do something here only when not sourced
exit