我如何调用 内核函数 /linux/fs 里面的内核 函数:比如 自己的程序调用 ext3_delete_inode

jekky001 2009-04-07 01:37:34
我如何调用内核里面的函数,比如 /linux/fs/ext3 里面的 提供的函数.比如 ext3_delete_inode


我看了下, 不知道是不是属于系统调用,

而且看了些系统调用的资料, 也没有比较简单的入门事例,显得无所适从.

希望各位给引点 一下, 非常感谢.
...全文
413 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
DIE654456 2009-04-26
  • 打赏
  • 举报
回复

程序运行分为 内核态(系统态) 和 用户态
内核态下可以访问所有程序空间,包括系统程序和用户程序, 而用户态下只能访问程序本身的空间或者某些共享空间。

/linux/fs/ext3 里边的 ext3_delete_inode 函数应该属于内核函数,
内核函数需要访问系统空间,在系统态下可以直接调用,在用户态下不能直接调用,需要进行系统调用 。

如果你写的程序属于系统程序,如操作系统,驱动程序,应该可以直接引用调用。
如果你写的程序属于普通应用程序程序, 想使用内核函数的话,必须进行系统调用。

通常 系统调用过程为
用户程序要求调用内核函数(处于用户态) --》 转入中断处理 --》 中断调用系统的内核函数(处于内核态)
《-- 中断返回 《-- 系统调用返回

希望对你有点帮助
Lucky
jekky001 2009-04-25
  • 打赏
  • 举报
回复
谢谢 fetag 的热情回复。我会努力学习,总有一天,我会有自己的一片天下,所有的人都会求着我为他们干活的。
独孤过儿 2009-04-24
  • 打赏
  • 举报
回复
Sorry. 8楼的回复作废,贴错帖子了
独孤过儿 2009-04-24
  • 打赏
  • 举报
回复
Linux/include/linux/fcntl.h中,下面的定义:

35 #define AT_FDCWD -100 /* Special value used to indicate
36 openat should use the current
37 working directory. */
38 #define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */


morris88 2009-04-24
  • 打赏
  • 举报
回复
貌似这个根本就不是问题吧。
1、如果你在作核心的程序,如模块等,那就加上头文件就行了
2、如果你在作应用层程序,那么你就不能这么干了;如果它属于系统 API,那么也是包含头文件,直接调用该函数就行了;
如果该函数属于核心的,但没有提供系统API接口,那么你包含了头文件,也没用,在这种情况创建一个模块,
放到内核当中, 调用 fs 提供的函数,并将其通过系统 API 提供给应用层,然后在应用程序中。
jekky001 2009-04-23
  • 打赏
  • 举报
回复
我真的可以吧头文件 加进来 就可以直接调用吗???????比如 加进 有关 inode 的头文件, 比如 inode.h ,我就可以调用其函数了吗 ???




还是 我必须自己创建一个模块 放到内核当中, 调用 fs 提供的函数 , 然后在应用程序中调用我自己的接口。

到底哪种对呢
allanqyz 2009-04-09
  • 打赏
  • 举报
回复
#include<.../fs.h>你可以你去内核代码中搜索要调用的函数 找到后把声明的头文件加进来就好了
morris88 2009-04-07
  • 打赏
  • 举报
回复
如果是在核心,可以直接调用。如果在应用层,没有系统调用接口,没法直接调用的;不过,你可以自己添加一个系统调用接口,然后在应用层调用。
jekky001 2009-04-07
  • 打赏
  • 举报
回复
非常感谢楼上的回复.
我知道原理, 楼上说的网址我也看了, 我只是不知道如何去调用这些函数.

简单点, 我想调用 /linux/fs/ext3/inode.c 里面的 ext3_delete_inode 函数,
但是我不知道怎么调用.

是不是属于系统调用,怎么调用, 有没有特别简单的例子 ./ 我现在连入门都没有入门,脑子一团乱.
  • 打赏
  • 举报
回复
http://www.ibm.com/developerworks/cn/linux/l-cn-filesrc4/index.html
xhy_851221 2009-04-07
  • 打赏
  • 举报
回复
up

4,444

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧