Я не думаю, что это обязательно вопрос C.
Общей методикой является запуск программы в «chroot jail».
Если вы хотите сделать это самостоятельно из программы C, используйте системный вызов chroot
(man 2 chroot).
Любой подход ограничивает выполнение программы в ограниченной (листовой или веточкой) части файловой системы. Это ограничивает программу до такой степени, что вы хотите поместить в этот каталог и подкаталоги. Он не может попасть в каталог, который был chroot'ed тоже, поэтому система относительно безопасна.
Это может занять довольно много заботы, чтобы правильно программировать, поэтому я бы рекомендовал сначала поэкспериментировать с командой chroot.
Не знаю, есть ли в Windows механизм simlar, но * NIX и Mac.
Если это «для реального», посмотрите на некоторые ссылки на разблокировку тюрьмы, например. http://www.unixwiz.net/techtips/chroot-practices.html
Вы можете использовать тюрьму chroot. Я не уверен, есть ли кросс-платформенный способ сделать это, но для Mac/Linux это тривиально. – Blender
Вам следует рассмотреть возможность запуска в виртуальной машине. –
Вы можете попробовать [Capsicum] (http://www.cl.cam.ac.uk/research/security/capsicum/). – chrisaycock