Дизайн Контракта в C для использования в Автоматизированном Доказательстве теорем

Используя shell=True со списком, вы запускаете эквивалент

sh -c ssh -i /path/myKey.pem centos@myServer.com lsb_release -a

, который не , что вы хотите; он запускает ssh, но использует -i в качестве значения [116], а не первый аргумент ssh. Это делает /path/myKey.pem похожим на адрес хоста, к которому вы хотите подключиться.

Просто бросьте shell=True.

p = Popen(cmd, stdout=PIPE, stderr=PIPE)

Хотя это не проблема, предложение Клауса Д. передать lsb_release -a в качестве единственного аргумента - это хорошая идея в целом. ssh должен объединить их в одну строку, чтобы перейти к sh -c на удаленном конце; может также сделать это самостоятельно, чтобы убедиться, что все сделано правильно.

cmd = ['ssh', '-i', '/path/myKey.pem', 'centos@myServer.com', 'lsb_release -a']
5
задан machinaut 7 May 2009 в 07:30
поделиться

2 ответа

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

Тот, что в RubyForge, Дизайн по контракту для C , выглядит очень многообещающе. GNU Nana существует уже давно и, вероятно, удовлетворит ваши потребности. Надеюсь, что они полезны.

Редактировать: Проверить эту статью в O'Reily на Проектирование по контракту для C:

Не удовлетворены assert () и взволнован дизайн по контракту, я намеревался создать свой собственный дизайн Выполнение контракта на C. После глядя на некоторые решения доступно для Java 1 Я решил использовать подмножество ограничений объекта Язык для выражения контрактов [4]. Используя Ruby и Racc, я создал дизайн по контракту для C, генератор кода что превращает контракты, встроенные в C комментарии в коде C, чтобы проверить контракты.

4
ответ дан 13 December 2019 в 05:41
поделиться

Открытый исходный код: проверка.

Автоматическое доказательство теорем: проверка.

Вам действительно понравится Frama-C и его язык спецификаций ACSL . Возможно, вы уже слышали о его предке Кадуцей, но в настоящее время он считается вытесненным Frama-C / Jessie.

6
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

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