Partage
  • Partager sur Facebook
  • Partager sur Twitter

QProcess ne fonctionne pas sur linux

Sujet résolu
    18 avril 2022 à 13:34:18

    bonjour je fait une application qui doit en lancée une autre, pour ce faire j'utilise un QProcess, ce programme fonctionne parfaitement sur Windows mais lors que je passe mon programme sur linux (un Raspbian 32) il ne fonctionne tout simplement plus, aucune erreur, il ne se passe juste rien.

    le code 

    int console::createFile(const QString name, const int index){
        QSettings room("room.ini", QSettings::IniFormat);
        if(!room.contains("NbOpenPort")){room.setValue("NbOpenPort",1);}
        if(!room.contains("NbOfRoom")){room.setValue("NbOfRoom",0);}
        if(!room.contains("1")){room.setValue("1",2049);}
        if(room.value("NbOpenPort").toInt()<=room.value("NbOfRoom").toInt()){
            log("error all port is taken");
            return(0);
        }
        room.setValue("NbOfRoom",room.value("NbOfRoom").toInt()+1);//on augmente le nombre de salle
    
        QProcess* starter = new QProcess();
        QStringList arg;
        const int portPrefered = room.value(room.value("NbOfRoom").toString()).toInt();
        arg.push_back(QString::number(portPrefered));//on met le port
        arg.push_back(name);
        starter->setArguments(arg);
        starter->setProgram(settings->value("settings/serverPath").toString());
        starter->start(settings->value("settings/serverPath").toString(),arg);
        connect(starter, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
            [=](int exitCode, QProcess::ExitStatus exitStatus){ console::finished(exitCode,exitStatus);});
        if(0){
            log("error on start server");
        }else{
            servName.append(name);
            log("the demarage is down");
            createPacket(index, "starting",QString::number(portPrefered));
        }
        return room.value(room.value("NbOfRoom").toString()).toInt();//on donne le port
    }
    
    void console::finished(int exitCode, QProcess::ExitStatus exitStatus){
        //une erreur avec le serveur est survenus
        if(exitCode!=0){
            log("error on server: exit code "+QString::number(exitCode));
        }
        if(exitStatus==QProcess::CrashExit){
            log("error on server: exit status crash");
        }
    }

    les lignes qui nous intéresse sont de la ligne 12 a 40.

    comprenez vous pourquoi il ne se passe rien ?

    avez vous déjà eu ce problème ?

    merci d'avance ! ;)

    -
    Edité par unel 18 avril 2022 à 13:34:49

    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2022 à 19:29:04

      bonjour,

      désolé d'avoir crée cette discussion mais c'est tout bête le chemin été pas bon (il ne faut pas qu’il finisse par .exe :-°).

      merci tout de même !!! 

      • Partager sur Facebook
      • Partager sur Twitter

      QProcess ne fonctionne pas sur linux

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown