如何用C代码实现这几个命令?

手机写程序 2011-03-04 10:52:36
由于系统使用busybox, 而rmmod,mknod,insmod,rm命令被裁剪掉了,用C代码实现这些功能,去加载或卸载自己的驱动,该怎么做?有相关的系统调用吗?

谢谢回复!
...全文
191 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
手机写程序 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wzzww 的回复:]
引用 10 楼 eyey1 的回复:

有create_module的例子吗?

最后回复这个帖子一次,busybox代码真的很难看吗?你觉得busybox是用什么完成insmod的呢?
最好的例子就是busybox。
自己的话被别人当白板,好无语呀,看来我还是少说话的好,说多错多,最主要的都是耳边风。
[/Quote]
兄台教训的极是,不要生气,其实我手头没有busybox的代码,翻网上的代码不容易啊。
犇犇犇程序猿 2011-03-07
  • 打赏
  • 举报
回复
自己移植一个busybox替代原来的busybox啊,比你自己写代码容易多了。
无知者无谓 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 eyey1 的回复:]

有create_module的例子吗?
[/Quote]
最后回复这个帖子一次,busybox代码真的很难看吗?你觉得busybox是用什么完成insmod的呢?
最好的例子就是busybox。
自己的话被别人当白板,好无语呀,看来我还是少说话的好,说多错多,最主要的都是耳边风。
手机写程序 2011-03-07
  • 打赏
  • 举报
回复
有create_module的例子吗?
李亚超 2011-03-04
  • 打赏
  • 举报
回复
+1
[Quote=引用 1 楼 justkk 的回复:]

mknod 有对应的C API,同名
int mknod(const char *pathname, mode_t mode, dev_t dev);

rm 可以调用int unlink(const char *pathname);

其它两个不知道
[/Quote]
jerry409 2011-03-04
  • 打赏
  • 举报
回复
1, rm 删除文件
remove(删除文件)

相关函数 link,rename,unlink
表头文件 #include<stdio.h>
定义函数 int remove(const char * pathname);
函数说明 remove()会删除参数pathname指定的文件。如果参数pathname为一文件,则调用unlink()处理,若参数pathname为一目录,则调用rmdir()来处理。请参考unlink()与rmdir()。
返回值 成功则返回0,失败则返回-1,错误原因存于errno
错误代码 EROFS 欲写入的文件存在于只读文件系统内
EFAULT 参数pathname指针超出可存取内存空间。
ENAMETOOLONG 参数pathname太长
ENOMEM 核心内存不足
ELOOP 参数pathname有过多符号连接问题
EIO I/O存取错误。

2,rmmod mkmod insmod没有C库函数
justkk 2011-03-04
  • 打赏
  • 举报
回复
mknod 有对应的C API,同名
int mknod(const char *pathname, mode_t mode, dev_t dev);

rm 可以调用int unlink(const char *pathname);

其它两个不知道
手机写程序 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 justkk 的回复:]
man create_module

HTML code
NAME
create_module - create a loadable module entry

SYNOPSIS
#include <linux/module.h>

caddr_t create_module(const char *name, size_t size)……
[/Quote]
size_t size这个参数好像指的是模块的大小,从何而来?
justkk 2011-03-04
  • 打赏
  • 举报
回复
man create_module
NAME
create_module - create a loadable module entry

SYNOPSIS
#include <linux/module.h>

caddr_t create_module(const char *name, size_t size);

DESCRIPTION
create_module() attempts to create a loadable module entry and reserve the kernel memory that will be needed to hold the module. This system call requires
privilege.

RETURN VALUE
On success, returns the kernel address at which the module will reside. On error -1 is returned and errno is set appropriately.
无知者无谓 2011-03-04
  • 打赏
  • 举报
回复
建议还是用busybox的,占的空间很小,自己写不见得就能省空间
如果非要自己写,建议直接看busybox代码吧,超短的代码。
手机写程序 2011-03-04
  • 打赏
  • 举报
回复
谢谢各位回复。

rmmod insmod对应delete_module,create_module。
delete_module知道如何调用了,各位大大帮看看create_module怎么用。谢谢了!
Rain208 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 playmud 的回复:]
rmmod insmod看源码吧
[/Quote]

源码是想当复杂呀。
playmud 2011-03-04
  • 打赏
  • 举报
回复
rmmod insmod看源码吧
内容概要:本文系统研究了开关频率大于谐振频率(fs>fr)工况下,移相混合控制LLC谐振变换器在低压增益区域的工作特性,深入分析其在变频与移相结合控制模式下的调制机理、工作模态划分及损耗分布规律。通过Simulink平台构建高保真仿真模型,对变换器在不同负载和输入条件下的电压增益、转换效率、关键器件电压电流应力等性能指标进行了全面仿真验证,重点探讨了其在低增益区间的软开关实现能力与效率优化潜力,旨在提升LLC变换器在宽范围输入输出应用中的动态响应与能源转换效率。; 适合人群:从事电力电子变换器设计、高频电源开发及相关领域的高校研究生、科研院所研究人员及企业研发工程师,要求具备扎实的电路理论基础、电力电子技术知识以及一定的Simulink仿真能力。; 使用场景及目标:①深入理解LLC谐振变换器在fs>fr条件下采用移相混合控制的内在工作机理与模态转换过程;②掌握利用Simulink搭建复杂谐振变换器精确仿真模型的方法与技巧;③分析并优化低压增益区的增益特性与损耗构成,为设计高效率、高功率密度的软开关电源提供理论依据和数据支持; 阅读建议:建议读者结合文中所述仿真模型,亲自复现仿真过程,重点观察不同控制参数(如移相比、开关频率)对电压增益曲线和关键波形的影响,并对比传统变频控制策略,深入探究混合控制在拓宽调压范围、提升轻载效率方面的优势,从而深化对现代高效谐振电源设计的理解。
内容概要:本文提出了一种基于粒子群优化算法(PSO)的配电网光伏储能双层优化配置模型,以IEEE33节点系统为标准算例,实现光伏发电单元与储能系统的协同选址与定容优化。该模型采用双层架构设计,上层以投资成本、运行经济性及网络损耗最小为目标优化设备配置方案,下层通过潮流计算评估系统在不同负荷场景下的运行性能,综合考虑电压稳定性、供电可靠性及可再生能源消纳能力,最终通过Matlab编程实现完整求解流程,为高渗透率分布式电源接入背景下的配电网规划提供了有效的技术支撑。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、高校科研人员及从事新能源并网、智能配电网规划与优化的工程技术人员。; 使用场景及目标:①研究含高比例光伏接入的配电网规划与运行协同优化问题;②掌握双层优化建模方法与粒子群算法在复杂电力系统问题中的应用技巧;③为实际工程中分布式光伏与储能系统的科学选址与容量配置提供理论依据与仿真验证平台。; 阅读建议:建议读者结合Matlab代码深入理解双层迭代求解机制,重点关注算法收敛性分析、参数敏感性测试,并可通过更换初始种群、调整权重因子或引入其他标准测试系统(如IEEE69节点)进行对比实验,进一步验证所提模型的普适性与鲁棒性。
内容概要:本文围绕双机并联虚拟同步发电机(VSG)在微电网中的功率分配、黑启动、虚拟阻抗与预同步控制展开,基于Simulink平台构建了完整的微电网系统仿真模型。重点研究了VSG在双机并联运行下的有功/无功功率均分控制策略,通过引入虚拟阻抗技术有效解决了因线路阻感比差异导致的功率分配不均问题。同时,设计了微电网黑启动流程与并网预同步控制模块,实现了待并网系统与主网在电压幅值、频率和相位上的精确同步,显著降低了并网冲击电流。系统整合了VSG控制、下垂控制、虚拟阻抗、锁相环(PLL)及预同步逻辑等关键环节,全面验证了多VSG协同运行的稳定性、自主恢复能力与并网可靠性。; 适合人群:具备电力系统、电力电子及自动控制等相关专业知识,从事微电网、分布式发电、VSG控制与并网技术研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解双机并联VSG系统中功率分配不均的机理及虚拟阻抗的补偿作用;②掌握微电网黑启动全过程及预同步控制的关键技术要点;③学习并实践基于Simulink的微电网多层次、多目标控制策略的建模与仿真方法;④为相关科研课题、毕业设计或实际工程项目提供可复现、可拓展的技术方案与仿真参考。; 阅读建议:建议结合提供的Simulink模型文件进行同步学习,重点关注VSG控制参数整定、虚拟阻抗设计原则、预同步切换逻辑等核心模块的实现细节,并可通过改变负载投切、线路参数或初始频率偏差等条件进行多工况仿真测试,以深入探究系统的动态响应特性与鲁棒性。

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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