ОС (POSIX) сбрасывает файл с отображенной памятью, если процесс является SIGKILLed?

Лучший подход к вашей проблеме - написать файл .py и запустить его.

Однако я могу представить, что для написания сценариев вам может понадобиться что-то подобное, если вы не можете написать файл. В этом случае вы можете разделить свои команды на ;, но вы будете ограничены программами без блоков, например:

python3 -c "import math; a = 10; print('Hello {} {}'.format(a, math.sin(a)))"

# prints:
# Hello 10 -0.5440211108893698

, но:

python3 -c "import math; a = 10; for i in range(a): print('Hello {} {}'.format(i, math.sin(i)))"

SyntaxError: неверный синтаксис

, но опять же:

python3 -c "import math; a = 10; [print('Hello {} {}'.format(i, math.sin(i))) for i in range(a)]"

# prints:
# Hello 0 0.0
# Hello 1 0.8414709848078965
# Hello 2 0.9092974268256817
# Hello 3 0.1411200080598672
# Hello 4 -0.7568024953079282
# Hello 5 -0.9589242746631385
# Hello 6 -0.27941549819892586
# Hello 7 0.6569865987187891
# Hello 8 0.9893582466233818
# Hello 9 0.4121184852417566

последний, конечно, плохая практика и все (побочный эффект в понимании и т. Д.), Но вид работ.

13
задан Jonathan Leffler 14 May 2009 в 14:43
поделиться

1 ответ

Это будет зависеть от того, файл с отображением памяти открывается с частными изменениями (MAP_PRIVATE) или нет (MAP_SHARED). Если частный, то нет; изменения не будут записаны обратно на диск. При совместном использовании пул буферов ядра содержит измененные буферы, и они будут записаны на диск в свое время - независимо от причины смерти.

16
ответ дан 2 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

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