gpt4 book ai didi

c - 将 shell 消息获取到 gtk msgBox

转载 作者:行者123 更新时间:2023-11-30 15:14:56 25 4
gpt4 key购买 nike

在带有 gtk 接口(interface)的 C 程序中,我有这个复制文件的指令,

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

我希望确认 cp -i 消息从 shell 重定向到 i gtk msgbox,甚至通过框按钮回答(是/否)

这是我尝试过的 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);

最佳答案

这当然是可行的,但会很尴尬。

基本上你应该考虑使用 glib's subprocess-spawning API运行 shell 命令,然后当然您必须解析输出并将其显示在对话框中。当用户单击对话框中的按钮时,您需要将其映射回文本响应并将其发送到子流程。

使用(再次)glib's GIO API 来实现复制要容易得多。 .

“Shelling out”在 C 中并不常见,因为它很难集成。

如果您必须在没有进一步库支持的情况下执行此操作,请查看 popen()自己创建一对管道,并在调用 exec() 之前将它们设置为子级的 stdin/stdout。

关于c - 将 shell 消息获取到 gtk msgBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com