當我打電話系統()的長字符串(它包含一些中國字),參數在linux C++系統()中,Qt的
系統()似乎不正確對待我的參數。
例如什麼系統()收到不符合我送
//it based on Qt
void work(QString order)
{
system((const char*)order.toLocal8Bit());
// in terminal, it shows a wrong command different with what it should be.
}
,當我打電話
work("g++ "+nfile+name+".cpp -o "+nfile+name+" 2>"+nfile+"compiler.out");
nfile的代表長路徑與一些中國字
您應該檢查系統( )的返回值,尤其是當你在循環中調用work()的時候。否則,如果用戶點擊CTRL + C,它只會殺死G ++程序,並繼續你的計劃,該計劃可能會再次調用系統的執行,使你的程序將無法終止的是,將不顧一切地繼續執行。看到等待()/ waitpid函數()函數來看看如何unterpret什麼系統()返回。 – BatchyX 2011-04-16 14:05:34