run system() command through qt application
-
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.
-
You might use "QProcess":http://doc.qt.nokia.com/latest/qprocess.html instead.
-
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.
-
Hi ,
thanks a lot. I'll try with qprocess and let you know the result.
-
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.
-
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.
-
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.
-
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. :)