如何在Minix操作系统中打印C中的文件路径



我必须在Minix OS中编辑exec系统调用,这样它创建的每个进程都应该打印程序文件路径+程序名:

例如,如果我在终端内键入ls,那么下一行应该显示path/to/ls/ls始终采用以下格式:filepath/programName

我已经打印了程序名,但文件路径有问题。有人能告诉我如何打印吗?

这是sys_exec.c:的代码

#include "syslib.h"
#include "stdio.h" //I included this library
int sys_exec(endpoint_t proc_ep, vir_bytes stack_ptr, vir_bytes progname,
vir_bytes pc, vir_bytes ps_str)
{
/* A process has exec'd.  Tell the kernel. */
message m;
m.m_lsys_krn_sys_exec.endpt = proc_ep;
m.m_lsys_krn_sys_exec.stack = stack_ptr;
m.m_lsys_krn_sys_exec.name = progname;
m.m_lsys_krn_sys_exec.ip = pc;
m.m_lsys_krn_sys_exec.ps_str = ps_str;
//edited by me
puts((char*)progname);//this prints the program name
return _kernel_call(SYS_EXEC, &m);
}

和一些图像作为参考:

这就是当我键入ls 时发生的情况

我走错了路径,我需要编辑的文件是usrsrcminixminixserversvfsexec.c,我正试图编辑usrsrcminixminixliblibsyssys_exec.c

在右边的文件中,我可以访问get_read_vp函数中一个名为fullpath的变量。我导入了stdio.h,然后在函数中键入了printf("executing: %sn", fullpath);

相关内容

  • 没有找到相关文章

最新更新