【发布时间】:2018-11-30 15:46:23
【问题描述】:
我正在编写一个简单的程序来挂钩 freebsd 系统调用。
像这样
static int
openat_hook(struct thread *td, register struct openat_args *uap)
{
uprintf(" SYS_openat: \"%s\", flags: %d, mode: %X\n", uap->path, uap->flags, uap->mode);
return sys_openat(td, uap);
}
这不会打印绝对路径。
当我在用户空间时,我可以通过 realpath 获取绝对路径。
但是,我不知道如何在内核中获得绝对路径。
【问题讨论】:
-
那么
realpath是怎么做到的呢? -
@AndrewHenle 在kdump中,这个函数叫__getcwd,我在syscall表中找到了,但是找不到这个函数的实现,