Описание тега setjmp

Все, что связано со стандартной библиотекой setjmp C и подпрограммами setjmp() и longjmp(), которые обеспечивают поток управления, изменяющий обычную последовательность вызова и возврата подпрограммы.
2 ответа

setjmp и longjump для реализации потоков

У меня был вопрос об использовании setjmp и longjump для создания стеков функций, которые могут работать независимо друг от друга. Применительно к этому вопросу Здесь стек функций для B(), кажется, находится над стеком функций для A, поэтому, когда …
29 окт '15 в 07:14
1 ответ

C: Передача строк по ссылке?

Я написал следующий код для понимания функций setjmp и longjmp, но я думаю, что проблема не связана с этими функциями. Я ожидаю, что результат будет: function1 function2 function2 но я продолжаю получать: function1 function2 function1 как положено. …
2 ответа

Какое состояние видимого программного процессора должно быть в jmp_buf на процессоре x86-64?

Как уже говорилось, какое видимое программно состояние процессора должно идти в jmp_buf на процессоре x86-64, когда setjmp(jmp_buf env) называется? Какого состояния процессора нет? Я много читал о setjmp а также longjmp но не смог найти четкого отве…
31 янв '18 в 14:25
3 ответа

Почему volatile работает для setjmp/longjmp

После вызова longjmp() к локальным объектам, не относящимся к энергонезависимым, не следует обращаться, если их значения могли измениться после вызова setjmp(). Их значение в этом случае считается неопределенным, и доступ к ним является неопределенн…
03 ноя '11 в 14:44
3 ответа

Отличные учебники по setjmp/longjmp

Привет, я хотел бы прочитать хорошие учебники по setjmp/longjmp на языке C. Было бы лучше, если бы были примеры, которые являются реальными, а не искусственными. Благодарю.
14 ноя '09 в 08:05
2 ответа

Реализация setjmp и longjmp в C без встроенных функций или сборки (получение неправильных возвращаемых значений)

Я пытаюсь проверить 2 из моих функций, которые имитируют setjmp и longjmp для домашней работы - что довольно сложно, поскольку нам не разрешено использовать встроенные функции или ассемблер asm () для реализации функций longjmp и setjmp. (Да, это де…
30 май '17 в 23:37
1 ответ

pthread_cleanup_push и O2 CFLAGS

У меня есть некоторые предупреждения при компиляции части кода с использованием pthread_cleanup_push/pop с -O2 CFLAGS. Просто удалив флаги O2 в Makefile, вы сможете скомпилировать его без проблем. Запрещено ли использовать gcc-оптимизацию с этими ма…
18 мар '17 в 14:43
1 ответ

setjmp, longjump и реконструкция стека

Обычно setjmp и longjmp не заботятся о стеке вызовов - вместо этого функции просто сохраняют и восстанавливают регистры. Я хотел бы использовать setjmp и longjmp, чтобы стек вызовов был сохранен, а затем восстановлен в другом контексте выполнения En…
28 окт '16 в 17:03
1 ответ

Использование setjmp в функции-обертке и локальная перестановка переменных

Документация setjmp(3) на страницах man (в моей системе) гласит, что Все доступные объекты имеют значения на момент вызова подпрограммы longjmp(), за исключением того, что значения объектов длительности автоматического хранения, которые не имеют тип…
06 авг '17 в 02:14
2 ответа

C макросами с открывающими и закрывающими тегами?

Я только начал читать эту статью об обработке исключений в c с использованием setjmp( jmp_buf) и longjmp( jmp_buf, int). Поэтому я в основном строю связанный список, который использует локальные переменные типа xRecord и связывает его со списком. (П…
09 сен '12 в 14:51
0 ответов

Как среда сохраняется с помощью setjmp и восстанавливается с помощью longjmp?

Вот мой экспериментальный код: #include <setjmp.h> #include <stdio.h> static jmp_buf buf; int main() { volatile int b = 3; if (setjmp(buf) != 0) { printf("%d\n", b); return 0; } b = 5; longjmp(buf, 1); } Мое понимание setjmp а также long…
17 авг '14 в 00:22
2 ответа

Есть ли в java вид setjmp/longjmp?

Я признаю, что если это возможно, это будет открытой дверью для плохого, очень плохого кода... Но в некоторых конкретных случаях... Итак, вопрос в том, существует ли какой-либо эквивалент c setjmp / longjmp? Я хотел бы реализовать Python-подобный ге…
26 дек '15 в 10:55
1 ответ

Почему происходит ошибка сегментации при вызове функции внутри setjmp()?

Я не понимаю, почему в функции middleFunc(), ошибка сегментации возникает, когда entry_point(arg) вызывается внутри if ( setjmp(middle) ) заявление. #include <stdio.h> #include <setjmp.h> jmp_buf start,middle,end; void finalFunc(void *v)…
0 ответов

Портирование sigsetjmp / sigjmp_buf (в C) на windows

Есть ли чистый способ (желательно совместимый с mingw64) портировать sigsetjmp / sigjmp_buf в windows?
22 май '16 в 03:49
1 ответ

Должен ли я вызывать longjmp после setjmp

В справочной странице на longjmp а также setjmpесть эта строка: Если функция, которая называется setjmp() возвращается до longjmp() называется, поведение не определено. Означает ли это, что я на самом деле должен позвонить longjmp где-то в функции, …
23 дек '17 в 20:47
1 ответ

Реинверсия управления с использованием longjmp

Я пытаюсь реализовать реинверсию управления в c с помощью longjmp, в настоящее время у меня есть этот код: #include <stdio.h> #include <setjmp.h> jmp_buf env; int arg; typedef void (*fptr)(int); fptr callback; void cb(int a) { arg = a; l…
1 ответ

Не может заставить работать будильник () более двух раз

static void AlarmHandler(int sig) ; int i=0; jmp_buf mark; int main(int argc, char * argv[]){ setjmp(mark); signal(SIGALRM, AlarmHandler); alarm(2); while(1); return 0; } static void AlarmHandler(int sig) { signal(SIGALRM, SIG_IGN); printf("I am in …
20 фев '18 в 22:05
2 ответа

Ограничить время выполнения функции в с

Я хотел бы ограничить выполнение функции в чистом C, не останавливая всю программу. Я полагаю, что самым близким моментом на stackru.com было последнее замечание в этой теме: как ограничить время выполнения функции в C/POSIX? Был некоторый разговор …
30 июл '15 в 10:08
1 ответ

Мой выход (статус) с помощью setjmp un longjmp

Проблема в том, что я должен реализовать свой собственный выход (статус) с помощью setjmp и longjmp. Может быть, кто-то может дать некоторые советы?
03 ноя '12 в 15:54
3 ответа

Есть ли проблемы с производительностью при нелокальных переходах?

Я использую нелокальные прыжки (setjmp, longjmp). Я хотел бы знать, может ли это быть проблемой для выступлений. Есть ли setjmp сохранить весь стек или просто несколько указателей? Благодарю.
28 апр '12 в 13:04