Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 多个线程,一次读/写一个_C++_Qt - Fatal编程技术网

C++ 多个线程,一次读/写一个

C++ 多个线程,一次读/写一个,c++,qt,C++,Qt,有两个QFile指针指向同一个文件,它们属于不同的线程。一个将数据写入文件,另一个读取。但我只想进行一个操作,读或写 if(!this->file->exists()) { qDebug()<<"The file is not exists"; } if(this->file->isOpen()) { qDebug()<<"The file is open"; } 如果(!this->file->exists()){ qDebug()

有两个
QFile指针
指向同一个文件,它们属于不同的线程。一个将数据写入文件,另一个读取。但我只想进行一个操作,读或写

if(!this->file->exists()) {
   qDebug()<<"The file is not exists";
}
if(this->file->isOpen()) {
   qDebug()<<"The file is open";
}
如果(!this->file->exists()){
qDebug()isOpen()){

qDebug()听起来像是您试图使用isOpen查看是否有其他线程打开了相同的文件。AFAIK isOpen只会告诉您当前QFile实例是否有文件打开,而不是其他QFile实例

我知道防止不同线程读取和/或写入同一文件的唯一方法是使用文件锁定


<>不太确定Qt是否有这样的方法,而不必深入研究更多的依赖于OS的API。< /P>“C/C++”不是一种语言。请删除<代码> C<代码>标签,因为这是C++。<代码>文件IsOpOn()/Cord>是正确的SqQuaseQFrand指针线程安全的。否则使用范围锁定(互斥)。@ CONDIMASMA:不,是正确的函数名。