我正在制作在线评委,我需要这些信息来进行排名和排行榜。有人能帮我解决这个问题吗?
最佳答案
基本实现很简单,但是在线评委更关心的是安全性,其次是资源衡量。
一步一步的朴素方式可以写成:
- 以特权用户身份运行进程
- 安装所有信号处理程序
- 将输入文件流复制到标准输入
- 创建子进程
- 在子进程中设置资源限制值
- 在子进程中切换到非特权用户
- 执行要在子进程中运行的程序
- 在父进程中,检查使用WIFSIGNALED和WTERMSIG等发送的信号并确定子进程的状态。
以下书籍将帮助您学习有关信号和资源限制的这些概念:
Advanced Programming in the UNIX(R) Environment (Addison-Wesley Professional Computing Series)
关于linux - linux下如何获取进程的总内存使用量和执行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144731/