从内核级别使用 sys_open

Use sys_open from kernel level

您好,我在使用 sys_open.At 时遇到了一些问题,此时我开始认为我对函数的参数做错了什么。 我如何使用它的一个例子:

fd = sys_open("file.txt" , O_WRONLY | O_CREAT, 0);
sys_write(fd, "test\n", strlen("test\n"));
sys_fsync(fd);
sys_fdatasync(fd);
sys_close(fd);

fd 值为非负整数 (0)。 每一个函数 returns 0 所以我猜它们被执行 corectly.Except sys_write。 每次我在写完文件后去查找文件时,我永远找不到它,不知道我的代码是否有问题?

Linux 的 sys_ 函数族被认为是 deprecated now。但是,对于这个问题的目的,sys_open是一个调用open系统调用的用户级函数,然后调用内核级do_sys_open(),后两者在[=14中定义=].因此,要从内核中打开文件,您应该坚持使用内核级函数而不是用户级函数。

Here are some answers 关于在内核级别打开文件,其中一些也已弃用,因此请注意。