请教QSocketNotifier的问题。。

weixin_38050362 2019-09-19 02:36:15
我用QFile打开一个文件,然后用QSocketNotifier监听它的描述符是否可读,如果activatied则进入槽函数打印一句话。但实际运行时,终端不停的重复打印(不停的进入槽函数),我很奇怪,没有往文件写任何东西啊?如果我去读文件,什么都读不到。。。代码如下:Server::Server(QString fileName, QObject *parent)    :QObject(parent){    file = new QFile(fileName, this);    if(file->open(QIODevice::ReadWrite)){        if(file->handle() >= 0){            notifier = new QSocketNotifier(file->handle(), QSocketNotifier::Write, this);            connect(notifier, SIGNAL(activated(int)), this, SLOT(onActivated(int)));        }    }else        qDebug() << "open file failed!";}voidServer::onActivated(int){    char buf[32];    int n = file->read(buf, 31);    qDebug() << "n = " << n;}如上所述,总是不停的进onActivated,读的n总是0。。。。盼望解答疑惑,谢谢!
...全文
849 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不要用QFILE 直接用open试试 另外监听可读不是应该用QSocketNotifier::Read吗?
是一种只有 2020-10-22
  • 打赏
  • 举报
回复
你好 我也遇到了这样的问题 原因找到了吗

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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