Linux 下应用程序 open() 函数打开设备文件失败和解决方法

在Linux环境下,一个使用open()函数打开设备文件的应用程序遇到错误,返回-1。问题源于设备号330可能无效。通过调整次设备号为144解决了问题。分析涉及MISC & platform_driver驱动,STM32MP157开发手册,以及Linux内核中主次设备号的范围。未尝试的措施包括检查权限和进一步探索设备号范围。
摘要由CSDN通过智能技术生成

1. 问题描述
  • 在 Linux 下使用 ./general_ioAPP /dev/miscbeep 打开设备文件时报错如下:
  • 错误代码:-1
2. 操作背景
  • MISC & platform_driver 驱动程序

  • 自定义次设备号:330

  • 测试 APP 源码:general_ioAPP.c

    #include "stdio.h"
    #include "unistd.h"
    #include "sys/types.h"
    #include "sys/stat.h"
    #include "fcntl.h"
    #include "stdlib.h"
    #include "string.h"
    
    /**
     * 文件名   :  general_ioAPP.c
     * 作者     :  tao
     * 版本     :  V1.0
     * 描述     :  通用 GPIO 测试 APP
     * 使用方法  : ./general_ioAPP /dev/xxx 0   写 0
     *            ./general_ioAPP /dev/xxx 1   写 1
    */
    
    /*
     * @description		: 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值