Как мы можем получить начальный адрес task_struct процесса

Why is bash history substitution still enabled by default?

Потому что им пользуются многие люди, а людям, использующим интерактивную оболочку bash, возможно, следует знать правила, чтобы избежать проблем, и обычно они больше помогают, чем вредят.

My.bashrc has included set +H for many many years but some other people are still getting bitten by this feature.

Таким образом, вы не используете эту функцию, но это не значит, что ее не использует большинство пользователей. Вы можете подать прошение об изменении значения по умолчанию, но вы должны посмотреть на A )долю людей, которые заботятся , и B )на долю людей, которые предпочитают, чтобы это было по-вашему.Люди, которым это небезразлично и не нравится , возможно, уже отключили его. Его изменение поможет, когда они получат учетную запись на новом компьютере. Люди, которым небезразлично и нравится , должны будут обновить свои настройки на каждом компьютере, который они используют, и на каждой учетной записи, которую они получат в будущем.

Given that pretty much everybody are using terminals with copy-paste features

На мой взгляд, более громоздкий вариант...

is there really any reason to have the feature at all? None of the existing scripts would be broken even if this was disabled by default for all shells.

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

(Clearly the feature has major issues if it's disabled by default for all scripting and a feature exists to verify the results before executing: shopt -s histverify.)

История не имеет смысла в сценариях, но, что более важно, она может вызвать проблемы с безопасностью. В вашем случае вы можете избежать проблемы, используя одинарные кавычки. Я не помню, чтобы это когда-либо вызывало у меня проблемы, поэтому я не знаю, как вы можете говорить, что у него есть «серьезные проблемы». Вызвало ли это для вас настоящую проблему или вас раздражала необходимость устанавливать значения по умолчанию на новом компьютере?

Я не вижу, чем это отличается от необходимости экранировать или использовать одинарные кавычки, если вы действительно хотите получить немного денег:

$ echo "Give me $50 or the cat gets it"
Give me $0 or the cat gets it
1
18.02.2020, 17:48
1 ответ

Внутри кода ядра текущий процесс доступен как currentуказатель :include linux/sched.h, а затем вы можете получить доступ к любому элементу task_structдля текущего процесса, написав, например, current->pid.

(currentсам по себе может быть макросом; например, на x86 он заменяется на get_current().)

См. главу 2 документа Драйверы устройств Linux , в частности «Текущий процесс».

3
28.04.2021, 23:23

Теги

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