|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2012, 18:23 | #1 |
Новичок
Джуниор
Регистрация: 29.05.2012
Сообщений: 2
|
Программирование на С в Unix: signals, longjmp
Здравствуйте, задача следующая:
Нужно написать функцию int thread_create(void (*fp)()), которая реализует thread и в качестве стека для него использует локальный массив. В этом thread`е будет выполняться функция, на которую указывает fp, при чем thread получает управление сразу после создания. Кроме того, надо написать функции void transfer_control_to_program, void transfer_control_to_thread, которые будут переключать управление между основной программой и реализованной нами нитью каждые 1/4 сек при помощи сигнала SIGALRM. В общем-то сложность заключается именно с первой функции, а именно, как заставить программу воспринимать массив в качестве стека? Две другие функции я написал так: Код:
Заранее спасибо за ответы. |
30.05.2012, 15:50 | #2 |
Новичок
Джуниор
Регистрация: 29.05.2012
Сообщений: 2
|
Ну так что? Никто не может помочь? Я пытался с помощью inline assembly установить регистры ss на начало массива, а bp и sp на конец, но при запуске я получаю ошибку сегментирования. У кого нибудь есть идеи?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
UNIX. Профессиональное программирование | mihali4 | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 3 | 01.07.2013 02:04 |
Программирование под Unix. Сигналы | ol-k_34 | Общие вопросы C/C++ | 0 | 01.05.2012 15:42 |
strcpy| программирование под Unix | Демик | Общие вопросы C/C++ | 6 | 30.03.2012 15:14 |
Программирование в командном процессоре ОС UNIX | Proby | Помощь студентам | 0 | 17.12.2011 07:10 |