• Gtk_Init(int argc, char *argv[]) argv[0]可以指向 另一个程序的可执行文件名


    这个是课程设计的一个作业,我用的是该死的RadHad9.03,单个窗口程序运行都没有错误,但是放到一起就不能弹出窗口,放到别的系统(如debian)下就没有这个问题!真是该死!(注:现在问题已经解决)

    1,窗口程序:

    #include <gtk/gtk.h>
    #include <unistd.h>
    #include <sys/types.h>

    void  destroy (GtkWidget *widget,gpointer *data)
    {
     gtk_main_quit();
    }

    int main (int argc, char *argv[])
    {
     GtkWidget *window;
     GtkWidget *label;
     GtkWidget *vbox;
     GtkWidget *frame;
     
     gtk_init (&argc,&argv);

    argc=1;                        /*由此处向下2行为修改部分,解决无法同时显示问题*/

    argv[0]="./proc"/*proc为主函数的名字*/
     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

     gtk_window_set_title(GTK_WINDOW (window), "The First Window");

     vbox = gtk_vbox_new (FALSE,20);

     gtk_container_add(GTK_CONTAINER (window),vbox);

     frame = gtk_frame_new ("The First Label");
     
     label = gtk_label_new ("================Hello================");

     gtk_container_add (GTK_CONTAINER (frame),label);
     gtk_box_pack_start(GTK_BOX (vbox),frame,FALSE,FALSE,0);

     gtk_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC (destroy),NULL);

     gtk_widget_show_all(window);

     gtk_main();

     return 0;
    }
    (这是个例子,其他两个可以和这个完全一样)

    2,主程序:

    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/wait.h>
    main()
    {
     pid_t pid1,pid2;

     pid1=fork();
     if(pid1==0)
     {
      puts("The First Window Created\n");
      execv("./hello",NULL);
     }
     else
     {
      pid2=fork(); 
      if(pid2==0)
      {
       puts("The Second Window Created\n");
       execv("./haii",NULL);
      }
      else
      {
       puts("The Third Window Created\n");
       execv("./heii",NULL);
      }
      
     }
    }


  • 相关阅读:
    php安全编程&python测试实例编写
    MySQL注入技巧性研究
    第一届“百度杯”信息安全攻防总决赛
    不想在315“中奖”?你得躲过这些坑!
    这些故事你尽管听,不奇葩算我输!
    str2-045漏洞事件,你想要的这里都有
    python多线程在渗透测试中的应用
    【ZCTF】easy reverse 详解
    UVA
    用Thinphp发送电子邮件的方法
  • 原文地址:https://www.cnblogs.com/cy163/p/785960.html
Copyright © 2020-2023  润新知