当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2016-11-11

    本文导语:  由于系统使用busybox, 而rmmod,mknod,insmod,rm命令被裁剪掉了,用C代码实现这些功能,去加载或卸载自己的驱动,该怎么做?有相关的系统调用吗? 谢谢回复! | mknod 有对应的C API,同名 int mkno...

由于系统使用busybox, 而rmmod,mknod,insmod,rm命令被裁剪掉了,用C代码实现这些功能,去加载或卸载自己的驱动,该怎么做?有相关的系统调用吗?

谢谢回复!

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

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

其它两个不知道

|
1, rm  删除文件
remove(删除文件)

相关函数 link,rename,unlink
表头文件 #include
定义函数 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库函数

|
+1

|
rmmod insmod看源码吧

|


源码是想当复杂呀。

|
建议还是用busybox的,占的空间很小,自己写不见得就能省空间
如果非要自己写,建议直接看busybox代码吧,超短的代码。

|
man create_module
NAME
       create_module - create a loadable module entry

SYNOPSIS
       #include 

       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.

|

最后回复这个帖子一次,busybox代码真的很难看吗?你觉得busybox是用什么完成insmod的呢?
最好的例子就是busybox。
自己的话被别人当白板,好无语呀,看来我还是少说话的好,说多错多,最主要的都是耳边风。

|
自己移植一个busybox替代原来的busybox啊,比你自己写代码容易多了。

    
 
 

您可能感兴趣的文章:

  • 请问一些shell命令的源代码,比如cp 的源代码存放在什么目录中?
  • 如何查看linux任意命令的的源代码?
  • 请问VI要配置变色代码和自动补齐该有什么设置命令?
  • 谁有关于file命令的原理和代码的一些介绍?
  • 那里可以下载halt这个命令的原代码?
  • 请教关于diff命令,代码?
  • java运行windows的cmd命令简单代码
  • 如何找到linux下一些命令的代码,比如mv的?
  • linux下ping命令的源代码在哪个rpm包中 在线等
  • mount命令的源代码在哪?
  • top命令的原代码哪里能找到啊?
  • 如何得到Linux的系统命令源代码,比如ping,mount,ls等?
  • 急,如何找到linux下常用命令的实现代码,如ls,less,top等
  • 命令行中成功 ,脚本中失败的代码
  • 我如何在代码里通过调用"ping"命令得到它的exit code
  • 我想用emacs写代码,但是我只会用基本的命令
  • 在做FTP服务端,请问哪位有解析LIST命令的C语言代码?
  • 急求ubuntu的ps命令源代码
  • 请问在哪里可以找到linux的cp命令的源代码
  • 请问如何能得到dd命令的相关源代码?急!!100分奉上!!!
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 用正则实现提取代码内容的代码
  • 通过javascript库JQuery实现页面跳转功能代码
  • 请问高手:Ctrl+Alt+F1~F8可以切换虚拟终端,这个代码是在哪儿实现的?我搞不懂,最好指点源代码大概位置。
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • c++ 连接两个字符串实现代码 实现类似strcat功能
  • c语言判断某一年是否为闰年的各种实现程序代码
  • gdb的时候代码 next显示的代码乱了 iis7站长之家
  • php实现socket实现客户端和服务端数据通信源代码
  • 如何用代码手工实现激活事件发生
  • C#/.NET字符串加密和解密实现(AES和RSA代码举例)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • javascript 添加到收藏夹和书签代码示例
  • 在JBuilder中,为什么编写的代码中,当代码出现关键字时,后面的部分代码就移位了,当在有关键字的那些代码行进行选择时,也会出现鼠标位
  • JSP中清空cookie代码参考
  • 为什么两行代码间不加入其他代码就崩溃,而加入了日志代码后就不崩溃?
  • Python获取网页编码的方法及示例代码
  • 在ubuntu8.10 新立得中安装anjuta,为什么没有代码提示功能,怎么做才有,还有自动代码补全和代码提示有什么区别,
  • HTML网页中的html body onload自动跳转方法介绍及自动跳转代码示例
  • 到底怎么样的代码算是有效代码?请教了。。
  • php通过socket_bind()设置IP地址代码示例
  • 如果要研究源代码以提高自己,哪一个开放源代码的软件比较合适?
  • boost库lexical_cast不同用法代码参考
  • linux源代码的时间函数源代码
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • gdb的时候代码 next显示的代码乱了
  • HTML网页的Meta Refresh自动跳转方法介绍及Meta Refresh自动跳转代码示例
  • 源代码!源代码!
  • Linux c++虚函数(virtual function)简单用法示例代码
  • 哪位会使用代码保护工具WingGuard来保护java代码?
  • NET c#索引器(indexer)介绍及代码示例
  • 如何得到C语言代码对应的汇编代码?
  • HTML网页中的javaScript自动跳转方法介绍及javaScript自动跳转代码示例
  • RedHat Linux是开放源代码的吗?如何能看见它的源代码,如何进行修改?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3