PINTOS中缺少exec,该进行什么检查



我正在进行Pintos项目#2。我已经实现了大部分系统调用。在exec系统调用中,有一个测试exec丢失,根据文件中的注释检查如下:

    /* Tries to execute a nonexistent process.
   The exec system call must return -1. */
#include <syscall.h>
#include "tests/lib.h"
#include "tests/main.h"
void
test_main (void) 
{
  msg ("exec("no-such-file"): %d", exec ("no-such-file"));
}

我不知道如何在我的exec代码中检查这一点。我已经正确地检查了框架指针,可能缺少什么?

指定为"exec"第一个参数的可执行文件是从start_process()函数中的load()函数加载的。

提醒您,start_process()是作为新创建的流程的一部分运行的函数。此功能负责将可执行文件加载到内存中并开始执行

如果未找到可执行文件,则load()函数将通过返回0来报告错误。在此之后,您需要解除分配给进程的所有内存,并通过调用exit()系统调用或调用process_exit()函数来结束它。

您可以从调试load()函数的返回状态开始。

相关内容

  • 没有找到相关文章

最新更新