找回密码
 立即注册
收起左侧

arm下qt用open()打开设备文件,怎么关闭设备文件

12
回复
12164
查看
[复制链接]
累计签到:59 天
连续签到:1 天
来源: 2015-6-18 18:35:21 显示全部楼层 |阅读模式
10Qter豆
linux下qt用open()打开了设备文件,用ioctl()控制设备,在纯c语言下可以用close()关闭设备文件的,但在qt里好像很多类有close(),该怎么调用可以关闭设备文件的这个close()。

最佳答案

查看完整内容

加全局符号,,::close(int);就行了,你是在一个窗口类的直接调用,,调用的肯定是该窗口的close(),这个是关窗口用的无参的,,,
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-6-18 18:35:22 显示全部楼层
fate 发表于 2015-6-21 21:12
不行啊,好像提示参数多了,这个close()应该是关闭窗口的

加全局符号,,::close(int);就行了,你是在一个窗口类的直接调用,,调用的肯定是该窗口的close(),这个是关窗口用的无参的,,,
回复

使用道具 举报

尚未签到

2015-6-18 20:50:25 显示全部楼层
QIOdevice 有open也有close, 一样的
回复

使用道具 举报

累计签到:59 天
连续签到:1 天
2015-6-18 21:32:00 显示全部楼层
Joey_Chan 发表于 2015-6-18 20:50
QIOdevice 有open也有close, 一样的

直接打close()? 提示不对
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-6-18 22:01:39 显示全部楼层
不是,,直接close,,把你打开的那个代码贴出来看看,,如果你是应用文件指针打开的话,直接用  文件指针->close()就可以了
回复

使用道具 举报

尚未签到

2015-6-19 09:46:31 显示全部楼层
同上
回复

使用道具 举报

累计签到:45 天
连续签到:1 天
2015-6-19 13:01:34 显示全部楼层
qt支持纯c  注意头文件                              
回复

使用道具 举报

累计签到:59 天
连续签到:1 天
2015-6-20 10:23:04 显示全部楼层
qq1043068972 发表于 2015-6-18 22:01
不是,,直接close,,把你打开的那个代码贴出来看看,,如果你是应用文件指针打开的话,直接用  文件指针->close( ...

#include <QTimer>
#include <QtDebug>
#include <QMutex>
#include <QThread>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <QIODevice>
#include <QFile>
#include <QTextStream>
#include <QProcess>
#include <sys/ioctl.h>
#include <math.h>

fd_motor=open("/dev/magic_dc_motor0",O_WRONLY);
ioctl(fd_motor, DCM_IOCTRL_SETPWM, (setpwm * factor));
该怎么调用close();

回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-6-21 11:06:56 显示全部楼层
直接写close(fd_motor);就可以了
回复

使用道具 举报

累计签到:59 天
连续签到:1 天
2015-6-21 21:12:50 显示全部楼层
qq1043068972 发表于 2015-6-21 11:06
直接写close(fd_motor);就可以了

不行啊,好像提示参数多了,这个close()应该是关闭窗口的

点评

加全局符号,,::close(int);就行了,你是在一个窗口类的直接调用,,调用的肯定是该窗口的close(),这个是关窗口用的无参的,,,  详情 回复 发表于 2015-6-22 11:47
回复

使用道具 举报

累计签到:59 天
连续签到:1 天
2015-6-22 22:04:31 显示全部楼层
qq1043068972 发表于 2015-6-22 11:47
加全局符号,,::close(int);就行了,你是在一个窗口类的直接调用,,调用的肯定是该窗口的close(),这个是关窗 ...

好像可以了,明天测试下,希望可以
回复

使用道具 举报

累计签到:59 天
连续签到:1 天
2015-6-23 08:57:13 显示全部楼层
qq1043068972 发表于 2015-6-22 11:47
加全局符号,,::close(int);就行了,你是在一个窗口类的直接调用,,调用的肯定是该窗口的close(),这个是关窗 ...

可以了啊,真感谢,以后还要多多问你

点评

多多讨论,我也是在学习中而已!  详情 回复 发表于 2015-6-23 12:30
回复

使用道具 举报

累计签到:615 天
连续签到:1 天
2015-6-23 12:30:46 显示全部楼层
fate 发表于 2015-6-23 08:57
可以了啊,真感谢,以后还要多多问你

多多讨论,我也是在学习中而已!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了