请问深度系统是如何传递命令行参数的?
Tofloor
poster avatar
linkaizheng
deepin
2018-09-23 02:43
Author
本帖最后由 linkaizheng 于 2018-9-22 18:46 编辑

我习惯了使用自己编的编辑器,但使用中发现无法用右键点击“打开方式”->“选择默认程序”来打开文档。经测试发现系统并没有传递命令行参数到程序中。测试代码如下:
#include

int
main (int argc, char **argv)
{
        GtkWidget *window;
        int i;
        gtk_init (&argc, &argv);
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        for(i = 0; i < argc; i ++)
        {
                GtkWidget *dialog;
                dialog = gtk_message_dialog_new (GTK_WINDOW(window),
                                GTK_DIALOG_DESTROY_WITH_PARENT,
                                GTK_MESSAGE_WARNING,
                                GTK_BUTTONS_CLOSE,
                                "argc=%d\nargv[%d]=\"%s\"",
                                argc,
                                i,
                                argv);
                gtk_dialog_run(GTK_DIALOG(dialog));
                gtk_widget_destroy (dialog);
        }
        gtk_widget_show(window);
        g_signal_connect_swapped(G_OBJECT(window), "destroy",
                        G_CALLBACK(gtk_main_quit), NULL);
        gtk_main();
        return 0;
}

得到的结果如下图:

可以看到系统传递给程序的命令行参数只有一条,就是程序本身。其它的系统还会有第二条,应该是要打开的文件的路径。不知道深度的系统为什么没有?要说没有吧,深度自带的编辑器gedit就能用同样的方式打开文件,真的是好奇怪呀?

尽管我可以在程序打开后,再去打开文档。但总是有些别扭。请问我该如何做,才能让系统把命令行参数传递过来?
Reply Favorite View the author
All Replies

No replies yet