translate_address
не является функцией Linux.Если вы имеете в виду какую-то книгу или пример кода, он должен объяснить, откуда вы должны получить эту функцию.Если этого не произойдет, скорее всего, он не предназначен для Linux (или действительно, очень плохой справочник / пример).
Более того, вам НЕ следует напрямую изменять содержимое jmp_buf
или sigjmp_buf
.Это архитектура и платформо-зависимые структуры, и только библиотека C может связываться с ними.Поскольку содержимое структур зависит от ОС, если при изменении sigjmp_buf
вы используете ссылку, предназначенную для какой-либо другой ОС, могут произойти плохие вещи.
Вместо этого следует использовать либо setcontext
, getcontext
и makecontext
для пользовательских потоков (волокон) или pthread_create
для потоков на уровне ОС.