2015-11-19 21 views
0

用GTK界面,我有這個指令複製文件,GET殼消息到GTK在C PROGRAMM MSGBOX

execl("/bin/cp","cp","-i",path,dest,NULL);/*copy*/ 

我想,從我到GTK MSGBOX外殼被重定向確認CP -i消息即使答案(是/否)由盒按鈕

這是GTK MSGBOX我想:

GtkWidget* dialog; 
dialog = gtk_dialog_new_with_buttons(
    "Rennomer fichier existant", 
    GTK_WINDOW(window), 
    GTK_DIALOG_MODAL, 
    GTK_STOCK_OK,GTK_RESPONSE_OK, 
    GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, 
    NULL); 
g_signal_connect(G_OBJECT(pButton), "clicked", G_CALLBACK(lancer_boite); 
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), pEntry, TRUE, FALSE, 0); 

回答

1

這當然是可行的,但它會很尷尬。

基本上你應該考慮使用glib's subprocess-spawning API來運行shell命令,然後當然你必須解析輸出並將它顯示在對話框中。當用戶單擊對話框中的按鈕時,您需要將其映射回文本響應並將其發送到子流程。

使用(再次)glib's GIO API實現複製更容易。

在C語言中,「Sheing out」不是很常見,因爲整合起來很尷尬。

如果您必須在沒有進一步庫支持的情況下執行此操作,請查看popen()以自行創建一對管道,並在調用exec()之前將它們設置爲孩子的stdin/stdout。

+0

是的,但它是一個操作系統的練習,這就是爲什麼我必須使用基本代碼。我在哪裏可以找到一個例子,它會更快 – Faceopace