当前位置: 技术问答>linux和unix
linux文件系统中的程序怎么使用啊?
来源: 互联网 发布时间:2016-06-28
本文导语: linux内核和文件系统中的程序怎么使用啊? 比如红黑树算法函数。MD5加密函数 我写应用程序怎么调用。是用驱动的形式吗?还是根本就没法调用。 比如红黑树函数 void rb_insert_color(struct rb_node *node, struct rb_root *r...
linux内核和文件系统中的程序怎么使用啊?
比如红黑树算法函数。MD5加密函数
我写应用程序怎么调用。是用驱动的形式吗?还是根本就没法调用。
比如红黑树函数
难道需要我拷贝出来?重新编译?这也太浪费资源了。系统里的不能用?
比如红黑树算法函数。MD5加密函数
我写应用程序怎么调用。是用驱动的形式吗?还是根本就没法调用。
比如红黑树函数
void rb_insert_color(struct rb_node *node, struct rb_root *root)
{
struct rb_node *parent, *gparent;
while ((parent = node->rb_parent) && parent->rb_color == RB_RED)
{
gparent = parent->rb_parent;
if (parent == gparent->rb_left)
{
{
register struct rb_node *uncle = gparent->rb_right;
if (uncle && uncle->rb_color == RB_RED)
{
uncle->rb_color = RB_BLACK;
parent->rb_color = RB_BLACK;
gparent->rb_color = RB_RED;
node = gparent;
continue;
}
}
if (parent->rb_right == node)
{
register struct rb_node *tmp;
__rb_rotate_left(parent, root);
tmp = parent;
parent = node;
node = tmp;
}
parent->rb_color = RB_BLACK;
gparent->rb_color = RB_RED;
__rb_rotate_right(gparent, root);
} else {
{
register struct rb_node *uncle = gparent->rb_left;
if (uncle && uncle->rb_color == RB_RED)
{
uncle->rb_color = RB_BLACK;
parent->rb_color = RB_BLACK;
gparent->rb_color = RB_RED;
node = gparent;
continue;
}
}
if (parent->rb_left == node)
{
register struct rb_node *tmp;
__rb_rotate_right(parent, root);
tmp = parent;
parent = node;
node = tmp;
}
parent->rb_color = RB_BLACK;
gparent->rb_color = RB_RED;
__rb_rotate_left(gparent, root);
}
}
root->rb_node->rb_color = RB_BLACK;
}
EXPORT_SYMBOL(rb_replace_node);
难道需要我拷贝出来?重新编译?这也太浪费资源了。系统里的不能用?
|
方法有自然是有的,不过比较麻烦,还不如copy 代码一份出来方便。
1. 做成系统调用, 需要修改内核。
2. 做一个简单的驱动程序,让驱动去调用内核里的函数,驱动再提供接口给你的应用程序。
1. 做成系统调用, 需要修改内核。
2. 做一个简单的驱动程序,让驱动去调用内核里的函数,驱动再提供接口给你的应用程序。
|
如果你在作核心的程序,如模块等,那就加上头文件就行了
如果你在作应用层程序,那么你就不能这么干了;如果它属于系统 API,那么也是包含头文件,直接调用该函数就行了;
如果你在作应用层程序,那么你就不能这么干了;如果它属于系统 API,那么也是包含头文件,直接调用该函数就行了;
|
|
纯算法的话,一般采用copy源码到用户程序较好
|
支持copy源码
|
需要自己做,不如copy出来做成个接口如#1楼所讲。
|
copy出来,省事