社区
Linux_Kernel
帖子详情
我如何调用 内核函数 /linux/fs 里面的内核 函数:比如 自己的程序调用 ext3_delete_inode
jekky001
2009-04-07 01:37:34
我如何调用内核里面的函数,比如 /linux/fs/ext3 里面的 提供的函数.比如 ext3_delete_inode
我看了下, 不知道是不是属于系统调用,
而且看了些系统调用的资料, 也没有比较简单的入门事例,显得无所适从.
希望各位给引点 一下, 非常感谢.
...全文
413
11
打赏
收藏
我如何调用 内核函数 /linux/fs 里面的内核 函数:比如 自己的程序调用 ext3_delete_inode
我如何调用内核里面的函数,比如 /linux/fs/ext3 里面的 提供的函数.比如 ext3_delete_inode 我看了下, 不知道是不是属于系统调用, 而且看了些系统调用的资料, 也没有比较简单的入门事例,显得无所适从. 希望各位给引点 一下, 非常感谢.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 函数,
但是我不知道怎么调用.
是不是属于系统调用,怎么调用, 有没有特别简单的例子 ./ 我现在连入门都没有入门,脑子一团乱.
猫已经找不回了
2009-04-07
打赏
举报
回复
http://www.ibm.com/developerworks/cn/linux/l-cn-filesrc4/index.html
xhy_851221
2009-04-07
打赏
举报
回复
up
linux
中的文件IO-3.1.
linux
应用编程和网络编程第1部分
本课程主要讲解
linux
中的文件读写和IO处理,包括API的概念、open
函数
的重要flag、
linux
内核
管理文件的原理、i
node
和v
node
、文件共享、标准IO等。终目的是让大家理解并掌握在
linux
中使用API和库
函数
进行文件操作的一般方法。
ext4_dirty_i
node
与ext4_do_update_i
node
函数
详解
一、ext4_dirty_i
node
定义在
fs
/ext4/i
node
.c中,其内容如下: void ext4_dirty_i
node
(struct i
node
*i
node
, int flags) { handle_t *handle; if (flags == I_DIRTY_TIME) return; handle = ext4_journ...
ext2文件系统之ext2_lookup
函数
源代码分析
之前我们讲过v
fs
虚拟文件系统的lookup文件查找的实现,知道当
内核
的缓存没有找到的时候,就会
调用
到i
node
_operations结构体的lookup
函数
来实现,我们今天以ext2文件系统为例,来讲解一下对应文件系统的lookup
函数
的实现。 首先ext2的i
node
_operation结构体定义在ext2/namei.c,定义如下 const struct i
node
_operation
ext2文件系统源代码之i
node
.c
今天,我们来看ext2文件系统源代码里边最大的一个文件i
node
.c。 在讲这个文件之前,我需要仙鹤大家说一个概念,就是间接块的概念,ext2文件系统在块大小为4096的时候可以支持的最大文件大小是4T大小,而ext2_i
node
结构体,就是ext2文件系统的i
node
在硬盘上的存储格式,__le32 i_block[EXT2_N_BLOCKS];EXT2_N_BLOCKS是15,如果每一个指
ext2文件系统i
node
.c源码分析(
Linux
2.6.24)
欢迎指正! /* *
linux
/
fs
/ext2/i
node
.c * * Copyright (C) 1992, 1993, 1994, 1995 * Remy Card (card@masi.ibp.fr) * Laboratoire MASI - Institut Blaise Pascal * Universite Pierre et Marie Curie (Paris VI) * * from * *
linux
/
fs
/minix/i
node
.c * * Copyr
Linux_Kernel
4,444
社区成员
17,461
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章