How do I open a file in its default program - Linux

前端 未结 3 880
说谎
说谎 2021-01-05 11:06

How do I programmatically open a file in its default program in Linux (im using Ubuntu 10.10).

For example, opening *.mp3 will open the file in Movie Player (or some

3条回答
  •  一个人的身影
    2021-01-05 12:03

    Ubuntu 10.10 is based on GNOME. So, it would be good idea to use g_app_info_launch_default_for_uri().

    Something like this should work.

    #include 
    #include 
    
    int main(int argc, char *argv[])
    {
            gboolean ret;
            GError *error = NULL;
    
            g_type_init();
    
            ret = g_app_info_launch_default_for_uri("file:///etc/passwd",
                                                    NULL,
                                                    &error);
            if (ret)
                    g_message("worked");
            else
                    g_message("nop: %s", error->message);
    
            return 0;
    }
    

    BTW, xdg-open, a shell script, tries to determin your desktop environment and call a known helper like gvfs-open for GNOME, kde-open for KDE, or something else. gvfs-open ends up calling g_app_info_launch_default_for_uri().

提交回复
热议问题