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

求救啊 ioctl函数

    来源: 互联网  发布时间:2017-01-10

    本文导语:  int ioctl(struct inode *inod,struct file * filp, unsigned int cmd,unsigned long arg) 如果我帮cmd 命令用 _IOWR(type,nr,size) 定义为双向传输, 那么这个arg 参数,即可以传入值,也可以读出值吗?    那怎么检测它的安全性了 ...

int ioctl(struct inode *inod,struct file * filp, unsigned int cmd,unsigned long arg)

如果我帮cmd 命令用 _IOWR(type,nr,size) 定义为双向传输, 那么这个arg 参数,即可以传入值,也可以读出值吗?
   那怎么检测它的安全性了
用这个access_ok 检测的时候,它一次只能检测VERIFY_WRITE  或 VERIFY_READ ,那我对同地址检测两次 (因为是双向传输,所以 要检测读 和写 时的地址安全性 即检测两次)好像检测通不过。

 if (_IOC_DIR(cmd) & _IOC_READ)
        err = !access_ok(VERIFY_WRITE, (void *)arg, _IOC_SIZE(cmd));
    else if (_IOC_DIR(cmd) & _IOC_WRITE)
        err = !access_ok(VERIFY_READ, (void *)arg, _IOC_SIZE(cmd));
    if (err) 
        return -EFAULT;

我想问一下双向传输 中 就用 arg 参数就可以了吗, 即应用程序中,通过该系统调用ioctl中的arg参数 传入一个值,然后还能从arg 参数中得到返回值(即ioctl仅仅调用一次,就可以通过arg 传入一个值,然后还可以从arg 得到一个返回值)?
是这样吗???
   双向传输怎么用啊

|
" 即应用程序中,通过该系统调用ioctl中的arg参数 传入一个值,然后还能从arg 参数中得到返回值(即ioctl仅仅调用一次,就可以通过arg 传入一个值,然后还可以从arg 得到一个返回值)?
是这样吗???"

应用程序通过该系统调用ioctl中的arg参数 传入一个值,然后,内核处理函数做赋值操作,然后,你的应用程序再去读这个值就可以了。呵呵。不放心的话,让应用程序sleep一秒。

这是我的代码,工程应用没问题。

    ......
    rev = ioctl(fd,FB_SBR_IOCTL_PRIORITY,pFBSBRPRIORITY);
    sleep(1);
   
    for( i = 0; i vlan_pri_number ; i++)
        printf("n  the vlan id is %d, and the priority value is %d.", 
            pFBSBRPRIORITY->vlan_priority_list[i].vlan, pFBSBRPRIORITY->vlan_priority_list[i].vlan_priority);
     .......

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求救!求救!紧急求救!为什么更新不了所指定的内容?
  • 求救!!!硬件高请进、、、、、、(十万火急,高分求救。)
  • 求救求救!!
  • 求救啊 高分求救 UNIX下关于进程通讯的问题~
  • 求救!!!求救!!!机器不能正常启动
  • 关于jdbc,求救求救!在线等待,马上给分
  • 紧急求救,root用户无权限删除文件
  • 晕,特晕...求救...
  • 高分求救~~如何取得linux下进程完整命令行字符串,就是的ps -ef 完整的全路径的CMD那一列,求救!!!!附现在的代码
  • 求救!weblogic6.0后台运行正确,前台页面跳转或调用其他页面时出“页面无法显示错误”
  • 求救:java里如何取整一个浮点数(不做四舍五入)
  • 紧急求救!!
  • Linux下无法启动apache 高分求救!在线等待
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题 (分不够可加)
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题
  • 求救,linux和windows之间如何联成局域网(设置),并且相互之间移动文件。
  • 求救!!在Redhat7.3下安装scim0.9.3怎么安装?
  • Linux8.0 修改字符集后,再次进系统,无图形界面问题。。。求救。。
  • SUSE网络打印机问题,在线等,求救!!
  • 散分一百,紧急求救!ROOT密码忘记


  • 站内导航:


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

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

    浙ICP备11055608号-3