我想构建一个基于Web的服务,让用户输入一些C代码,然后服务器将编译并运行并返回结果.我知道,我知道安全噩梦.所以也许我可以使用chroot或lxc或类似的东西. stackoverflow上有关于这些的好帖子.另一种选择是使用编程竞赛软件.
我所做的不是用于一般编程目的.用户可以将代码添加到几个存根函数中,就是这样.它们不需要能够使用指针或数组或字符串.它们不应该能够打开/关闭/读/写文件或套接字或共享内存.他们甚至无法创建自己的功能.他们应该只能做以下事情:
// style comments /* */ style comments declare variables of type int,double,float,int64_t,int32_t,uint64_t,uint32_t for,while,do +,-,*,/,% arithmetic operators ( * as dereference is NOT allowed ) ( ) +,- unary operators ++,-- operators math functions like sin,cos,abs,fabs,etc a bunch of API functions that will exist switch,case,break { } if,else,==,!= =,+=,-=,*=,/=,etc
有没有一个工具可以用来检查给定的C代码块,以确保它只包含那些元素?
如果我找不到现有的解决方案,我可以使用Antlr或类似的东西自己提出来.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。