Ну, вы можете попробовать:
#define system DontEvenThinkAboutUsingThisFunction
#define exec OrThisOneYouClown
в заголовочном файле, но я вполне уверен, что любая обезьяна кода, достойная их соли, могла бы обойти такую "защиту".
Мне было бы интересно понять , почему вы думали, что это необходимо (может быть лучшее решение, если мы лучше поняли проблему).
Единственное, что приходит на ум, это то, что вы хотите предоставить некоторый онлайн-компилятор / бегун, родственный проекту Euler. Если это , то вы можете найти код для строки system<whitespace>(
в качестве опции, но даже тогда определенная сторона может просто:
#define InoccuousFunction system
чтобы обойти вашу оборону.
Если это является случаем, вы можете подумать об использовании чего-то вроде chroot
, чтобы никто не мог даже получить доступ к любому опасные двоичные файлы, такие как shutdown
(и этот конкретный зверь на самом деле не должен запускаться обычным пользователем в любом случае) - другими словами, ограничьте их среду так, чтобы только вещей, которые они могут даже видеть, были gcc
и его род.
Вы должны сделать правильную изолированную программную среду, поскольку, даже если вы каким-то образом запретили им запускать внешние программы, они все равно могут выполнять опасные действия, такие как перезапись файлов или открывать сокет-соединения с собственным ящиком для отправки через содержимое вашего ценная информация.