OJ内核还是有点麻烦

起初觉得OJ的内核就是那么简单的一个东西,做起来还是问题多多,也不清楚我的方法对不对。。

 

   首先是创建两个管道,分别把标准输入输出重定向到这两个管道上,接着创建子进程,也就是要测试的程序,由于创建管道时设置了 saAttr.bInheritHandle=TRUE, 于是子进程的标准输入输出自然地也被定向到管道上,创建完毕后将主进程的输入输出还原

 

   接下来我分别开了读,写线程,用于读取文件中的测试数据,最开始是直接用主进程来读,后来发现有海量数据的时候不好办,就另开了线程,

这样可以边读边处理

 

    接下来在循环里用WaitForSingleObject来判断子进程的运行状态,每个循环都测试已经运行的时间和消耗的内存,一超出限制便结束子进程

 

    目前在耗时测试上感觉还不对劲,测出来的耗时不稳定,代码如下

 

 

 

   然后要做的就是开裁判线程来对比结果了。。。

 

 

 

   做这些东西就是无聊,没有写游戏来得有意思啊。。。。我决定一定不干满足用户需求这种痛苦的编程工作,把无限的想象和可能都扼杀了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值