run system() command through qt application
-
wrote on 30 Sept 2011, 14:55 last edited by
Hi,
I cross compiled my qt application and it runs well on my arm development platform. What I want is to run a system() command when a button is pressed.I did something like follow in button's clicked() function.
@
Qstring command="cp -r /my_location1 /my_location2";
const char* command2;command2 =command.toLocal8Bit().data();
system(command2);
@
this worked perfecly on my pc. but on target it didnt work.
I ran my application with ./my_app -qws command. can anyone help methank you.
-
wrote on 30 Sept 2011, 15:15 last edited by
You might use "QProcess":http://doc.qt.nokia.com/latest/qprocess.html instead.
-
wrote on 30 Sept 2011, 15:23 last edited by
Using system(3) is usually a bad idea. But the error there is
@
command2 =command.toLocal8Bit().data();
@command2 is a dangling pointer after that statement.
-
wrote on 30 Sept 2011, 15:49 last edited by
Hi ,
thanks a lot. I'll try with qprocess and let you know the result.
-
wrote on 1 Oct 2011, 09:19 last edited by
Hi,
It didn't work. I don't know it has something to do with using -qws option when executing the program in the target. Because the same program works perfectly in my host computer.
thank you.
-
wrote on 1 Oct 2011, 09:31 last edited by
Probably you shold post at least a section of code showing the implementation of QProcess. Furthermore, it might help to provide the error messages, if any.
-
wrote on 1 Oct 2011, 10:29 last edited by
Based on my personal experiences, both system() and QProcess should work on embedded devices running QWS, so the -qws option doesn't seem to be the problem (at least not the real problem). Perhaps some information about you devices may help, too.
On the other hand, if you are only interested in copying files, you can consider using "QFile's copy function":http://doc.qt.nokia.com/latest/qfile.html#copy instead. It should be pretty easy to use.
-
wrote on 1 Oct 2011, 18:47 last edited by
HI,
I could resolve the problem. It was a silly mistake. I had used "pushButton_clicked()" function to execute my command whereas it should have been "pushButton_pressed()" function. Now the system works perfectly. thank you everyone. I learnt a lot from you. :)
1/8