2014-01-27 3 views
0

Я понимаю, что использование вышеуказанного API безопасно для обычных настольных систем на базе x86, но для встроенной системы, использующей ARM или MIP, может использоваться некоторый не очень часто используемый API меньше поддержки или ошибок. Является ли это полностью переносимым, чтобы включить такие расширенные API в свою программу?Использование setcontext(), getcontext() во встроенной системе

+0

Не смотря на спецификацию и документацию данной встроенной системы, вы даже не можете быть уверены, что она правильно реализует * memcpy *. – Philipp

+0

Как только кто-то сказал: нет такой вещи, как переносимый код, только тот, который был портирован. Посмотрите на конкретные цели, на которые вы стремитесь, выберите то, что доступно там. –

+0

Отличный [GNU Pth] (http://www.gnu.org/software/pth/) включает в себя технический документ (а также код переключения ctx), описывающий альтернативу 'setjmp, longjmp, sig * stack/jmp'. Конечно, проще использовать pthreads на современной, совместимой с POSIX платформе. –

ответ

2

Похоже, что они были отмечены как устаревшие в 2004 году и удалены из POSIX в 2008 году. Поэтому в зависимости от их работы кажется ... сомнительным.

0

Эти API в настоящее время обычно поддерживаются на всех платформах, поддерживаемых операционной системой. Они также являются основой почти всех совместных многозадачных реализаций и широко используются в различных языках программирования переводчиков, поэтому обычно проходят обширное тестирование.

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

Смежные вопросы