【发布时间】:2011-06-30 13:28:58
【问题描述】:
为ACM比赛开发在线评委,我们应该防止用户提交的源代码中调用某些api。
例如,在源代码中不允许调用shutdown() 或socket()。如果源代码调用了api,我们应该停止编译或者编译时抛出错误,或者运行时抛出错误。
我不知道如何在 Linux 或 Windows 上执行此操作;你们能给我一些建议吗?
【问题讨论】:
-
在 linux 上你可以使用 LD_PRELOAD 并使用一个自编译的库来覆盖所有被禁止的函数并在调用时中止。
-
当然,你必须禁止使用inline ASM,否则你所做的一切都是徒劳的。
标签: c windows linux compiler-construction