本文整理汇总了C++中OperatingSystem::limitExecutionTime方法的典型用法代码示例。如果您正苦于以下问题:C++ OperatingSystem::limitExecutionTime方法的具体用法?C++ OperatingSystem::limitExecutionTime怎么用?C++ OperatingSystem::limitExecutionTime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OperatingSystem
的用法示例。
在下文中一共展示了OperatingSystem::limitExecutionTime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: executeOnTestCase
Verdict executeOnTestCase(string testCaseName) {
string testCaseInputFilename = generator->getTestCasesDir() + "/" + testCaseName + ".in";
os->limitExecutionTime(generator->getTimeLimit());
os->limitExecutionMemory(generator->getMemoryLimit());
ExecutionResult result = os->execute(testCaseName + "-submission-evaluation", submissionCommand, testCaseInputFilename, "_submission.out", "_error.out");
os->limitExecutionTime(0);
os->limitExecutionMemory(0);
if (result.exitStatus == 0) {
return Verdict::unknown();
}
vector<Failure> failures;
if (result.exitStatus & (1<<7)) {
int signal = WTERMSIG(result.exitStatus);
if (signal == SIGXCPU) {
return Verdict::timeLimitExceeded();
}
failures.push_back(Failure("Execution of submission failed:", 0));
failures.push_back(Failure(string(strsignal(signal)), 1));
} else {
failures.push_back(Failure("Execution of submission failed:", 0));
failures.push_back(Failure("Exit code: " + Util::toString(result.exitStatus), 1));
failures.push_back(Failure("Standard error: " + string(istreambuf_iterator<char>(*result.errorStream), istreambuf_iterator<char>()), 1));
}
return Verdict::runtimeError(failures);
}