C++ 在线编译器工具是否执行所有操作,或者只是检查它们是否只是编译?

C++ 在线编译器工具是否执行所有操作,或者只是检查它们是否只是编译?,c++,c,sockets,compiler-construction,C++,C,Sockets,Compiler Construction,有几种类似的在线编译器。我想知道他们真的会像我们在本地机器上编译和运行一段代码时那样做吗?或者他们只是以受限权限运行它 还有很多类似的事情:如果我创建一个套接字,并向一个全局IP发送一个连接请求,那么这个全局机器会收到该请求吗?或者它只是显示我们在控制台上得到的输出?我不使用任何东西,除了C和C++,所以标记这两个,期待这些答案,特别是这些,但其他概念和概念同样欢迎。p> 据我所知,大多数在线编译器都会进行真正的编译。但运行步骤(如果有)将不可全局观察;每个提交的代码都应该保存在沙箱中(没有真实

有几种类似的在线编译器。我想知道他们真的会像我们在本地机器上编译和运行一段代码时那样做吗?或者他们只是以受限权限运行它


还有很多类似的事情:如果我创建一个套接字,并向一个全局IP发送一个连接请求,那么这个全局机器会收到该请求吗?或者它只是显示我们在控制台上得到的输出?我不使用任何东西,除了C和C++,所以标记这两个,期待这些答案,特别是这些,但其他概念和概念同样欢迎。p> 据我所知,大多数在线编译器都会进行真正的编译。但运行步骤(如果有)将不可全局观察;每个提交的代码都应该保存在沙箱中(没有真实世界的双边通信,没有进行任何破坏性操作的能力)。阅读更多关于沙盒的信息,例如wikipe:)(就限制和沙盒而言,在线IDE就像“在线法官”)

例如,坏用户可以尝试发送

main(){system("rm -fr /");}
而网站应该防范此类代码。 它可以在没有用户(最低权限级别)的情况下使用chroot运行代码,甚至可以模拟run(valgrind/qemu)

ideone甚至在FAQ中提到了限制:

  • 我可以从我的程序访问网络吗?-没有
  • 我可以在程序中写入或读取文件吗?-没有
  • 执行时间:5或15秒

因此,是的,它们确实以(非常)受限的权限运行,因为提交的代码是不受信任的代码。

为什么不试试?:-)我敢打赌,这些编译器不会有任何非标准库可用,它们可能会去掉内联汇编…@KerrekSB:它们确实有一些非标准库可用;例如,ideone和codepad都允许使用Boost库(虽然不是最新版本)。