Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Weird behavior of QProcess and multiple qoutes
Forum Updated to NodeBB v4.3 + New Features

Weird behavior of QProcess and multiple qoutes

Scheduled Pinned Locked Moved Solved General and Desktop
36 Posts 7 Posters 6.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G Offline
    G Offline
    Guanhong
    wrote on last edited by
    #16

    @jsulm thank you.
    I think quotes are necessary, because there is a single quote outside a double quote.
    I need to process the following command by QProcess, could you show me how?
    pa_cli -i wlan0 set_network 1 ssid '"hima24g"'

    1 Reply Last reply
    0
    • Christian EhrlicherC Offline
      Christian EhrlicherC Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on last edited by Christian Ehrlicher
      #17

      Again: there is no need to quote an argument when using QProcess::start() with QStringList - they are only needed on the command line so bash/cmd.exe/whatever knows what a single argument is! Your ssid is hima24g and not "hima24g" or 'hima24g' ... or?

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      1 Reply Last reply
      3
      • G Offline
        G Offline
        Guanhong
        wrote on last edited by
        #18

        @Christian-Ehrlicher
        Even if there are single quotes and double quotes in the command, is there no need to add quotes? I looked at earlier replies, it seems that quotes are need.

        I just removed quotes and changed my codes to
        arguments << "-i" << "wlan0" << "set_network" << "0"<< "ssid" << strSSID ;
        FAILed too.

        jsulmJ 1 Reply Last reply
        0
        • G Guanhong

          @Christian-Ehrlicher
          Even if there are single quotes and double quotes in the command, is there no need to add quotes? I looked at earlier replies, it seems that quotes are need.

          I just removed quotes and changed my codes to
          arguments << "-i" << "wlan0" << "set_network" << "0"<< "ssid" << strSSID ;
          FAILed too.

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #19

          @Guanhong Then add proper error handling and also read from std error of your process to see whether it prints any errors.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          G 1 Reply Last reply
          2
          • jsulmJ jsulm

            @Guanhong Then add proper error handling and also read from std error of your process to see whether it prints any errors.

            G Offline
            G Offline
            Guanhong
            wrote on last edited by
            #20

            @jsulm
            QString strResult4 = prcsWlan4.readAllStandardOutput();
            strResult4 is FAIL

            jsulmJ 1 Reply Last reply
            0
            • G Guanhong

              @jsulm
              QString strResult4 = prcsWlan4.readAllStandardOutput();
              strResult4 is FAIL

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #21

              @Guanhong said in Weird behavior of QProcess and multiple qoutes:

              readAllStandardOutput()

              I was talking about std ERROR (https://doc.qt.io/qt-5/qprocess.html#readAllStandardError)...

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • Christian EhrlicherC Offline
                Christian EhrlicherC Offline
                Christian Ehrlicher
                Lifetime Qt Champion
                wrote on last edited by
                #22

                Please run it on the command line. Maybe you don't have the proper privileges.

                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                Visit the Qt Academy at https://academy.qt.io/catalog

                G 1 Reply Last reply
                0
                • Christian EhrlicherC Christian Ehrlicher

                  Please run it on the command line. Maybe you don't have the proper privileges.

                  G Offline
                  G Offline
                  Guanhong
                  wrote on last edited by
                  #23

                  @Christian-Ehrlicher
                  I have run it on the command line, it is no problem.

                  Christian EhrlicherC 1 Reply Last reply
                  0
                  • G Guanhong

                    @Christian-Ehrlicher
                    I have run it on the command line, it is no problem.

                    Christian EhrlicherC Offline
                    Christian EhrlicherC Offline
                    Christian Ehrlicher
                    Lifetime Qt Champion
                    wrote on last edited by
                    #24

                    @Guanhong Please show how you run it on the command line

                    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                    Visit the Qt Academy at https://academy.qt.io/catalog

                    1 Reply Last reply
                    0
                    • G Offline
                      G Offline
                      Guanhong
                      wrote on last edited by
                      #25

                      @Guanhong said in Weird behavior of QProcess and multiple qoutes:

                      <

                      wpa_cli -i wlan0 set_network 1 ssid '"hima24g"'
                      I run it on an Ubuntu console, and it can run successfully

                      jsulmJ Christian EhrlicherC 2 Replies Last reply
                      0
                      • G Guanhong

                        @Guanhong said in Weird behavior of QProcess and multiple qoutes:

                        <

                        wpa_cli -i wlan0 set_network 1 ssid '"hima24g"'
                        I run it on an Ubuntu console, and it can run successfully

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #26

                        @Guanhong said in Weird behavior of QProcess and multiple qoutes:

                        wpa_cli -i wlan0 set_network 1 ssid '"hima24g"'

                        wpa_cli -i wlan0 set_network 1 ssid hima24g
                        

                        should work just as good

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        0
                        • G Guanhong

                          @Guanhong said in Weird behavior of QProcess and multiple qoutes:

                          <

                          wpa_cli -i wlan0 set_network 1 ssid '"hima24g"'
                          I run it on an Ubuntu console, and it can run successfully

                          Christian EhrlicherC Offline
                          Christian EhrlicherC Offline
                          Christian Ehrlicher
                          Lifetime Qt Champion
                          wrote on last edited by
                          #27

                          set_network 1

                          is not

                          "set_network" << "0"

                          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                          Visit the Qt Academy at https://academy.qt.io/catalog

                          1 Reply Last reply
                          1
                          • G Offline
                            G Offline
                            Guanhong
                            wrote on last edited by
                            #28

                            wpa_cli -i wlan0 set_network 1 ssid hima24g
                            without quotes, it does not work on my console.

                            set_network 1 or set_network 0 does not matter.
                            It depends.

                            jsulmJ 1 Reply Last reply
                            0
                            • G Guanhong

                              wpa_cli -i wlan0 set_network 1 ssid hima24g
                              without quotes, it does not work on my console.

                              set_network 1 or set_network 0 does not matter.
                              It depends.

                              jsulmJ Offline
                              jsulmJ Offline
                              jsulm
                              Lifetime Qt Champion
                              wrote on last edited by
                              #29

                              @Guanhong So, did you try to print out https://doc.qt.io/qt-5/qprocess.html#readAllStandardError ?

                              https://forum.qt.io/topic/113070/qt-code-of-conduct

                              1 Reply Last reply
                              0
                              • Christian EhrlicherC Offline
                                Christian EhrlicherC Offline
                                Christian Ehrlicher
                                Lifetime Qt Champion
                                wrote on last edited by
                                #30

                                Looks like wpa_cli really needs additional double quotes... strange and weird program (see google for a lot of confusion due to this behavior).
                                So it must be

                                arguments << "-i" << "wlan0" << "set_network" << "0"<< "ssid" << "\"" + strSSID + "\"";
                                

                                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                                Visit the Qt Academy at https://academy.qt.io/catalog

                                G 1 Reply Last reply
                                2
                                • Christian EhrlicherC Christian Ehrlicher

                                  Looks like wpa_cli really needs additional double quotes... strange and weird program (see google for a lot of confusion due to this behavior).
                                  So it must be

                                  arguments << "-i" << "wlan0" << "set_network" << "0"<< "ssid" << "\"" + strSSID + "\"";
                                  
                                  G Offline
                                  G Offline
                                  Guanhong
                                  wrote on last edited by Guanhong
                                  #31

                                  @Christian-Ehrlicher
                                  this command includes not only double quotes but also single quotes outside. Can QProcess handle it?

                                  1 Reply Last reply
                                  0
                                  • Christian EhrlicherC Offline
                                    Christian EhrlicherC Offline
                                    Christian Ehrlicher
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #32

                                    The outer quotes are only needed so the inner ones are not removed by the shell.

                                    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                                    Visit the Qt Academy at https://academy.qt.io/catalog

                                    G 1 Reply Last reply
                                    1
                                    • Christian EhrlicherC Christian Ehrlicher

                                      The outer quotes are only needed so the inner ones are not removed by the shell.

                                      G Offline
                                      G Offline
                                      Guanhong
                                      wrote on last edited by
                                      #33

                                      @Christian-Ehrlicher
                                      I don't think so. both quotes are necessary, without either, the command doesn't work on command line.

                                      JonBJ Christian EhrlicherC 2 Replies Last reply
                                      0
                                      • G Guanhong

                                        @Christian-Ehrlicher
                                        I don't think so. both quotes are necessary, without either, the command doesn't work on command line.

                                        JonBJ Offline
                                        JonBJ Offline
                                        JonB
                                        wrote on last edited by JonB
                                        #34

                                        @Guanhong
                                        Do you understand that, certainly quote-wise, what you type into a shell/command-line is not the same as what you would put into the QStringList for the arguments to QProcess::start()?

                                        Meanwhile if you helped us by using the forum's Code toolbutton around what you are entering on the command-line it would be a lot easier to read/understand.

                                        1 Reply Last reply
                                        0
                                        • G Guanhong

                                          @Christian-Ehrlicher
                                          I don't think so. both quotes are necessary, without either, the command doesn't work on command line.

                                          Christian EhrlicherC Offline
                                          Christian EhrlicherC Offline
                                          Christian Ehrlicher
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #35

                                          @Guanhong said in Weird behavior of QProcess and multiple qoutes:

                                          I don't think so. both quotes are necessary, without either, the command doesn't work on command line.

                                          I'm giving up.... don't know how often I must explain that your shell/command line removes the outer quotes...

                                          Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                                          Visit the Qt Academy at https://academy.qt.io/catalog

                                          G 1 Reply Last reply
                                          3

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved