====== Catturare output comando con glib ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//23/03/2017 - 17:15//** \\ \\ In questo esempio andiamo a catturare l'output del comando ''youtube-dl --get-title https://www.youtube.com/watch?v=y4uHZJiH_Mo'' e lo stampiamo sulla variabile **gchar* output**; La funzione ritorna il titolo del video youtube a partire dall'url. #include ... gchar* getVideoTitle(gchar* url) { GError *error = NULL; gchar *cmd[]={ youtubedl,"--get-title",url, NULL }; gint *exitStatus; gchar *output = NULL; //output del comando int exit_status = 0; g_spawn_sync(NULL, cmd, NULL, 0, NULL, NULL, &output, NULL, &exit_status, &error); if (error!=NULL) { g_print(" Errore: %s\n",error->message); g_error_free (error); } return output; } Versione con controllo errori dallo stderr: gchar* getVideoTitle(gchar* url) { GError *error = NULL; gchar *cmd[]={ youtubedl,"--get-title",url, NULL }; gint *exitStatus; gchar *output = NULL; // will contain command output gchar *errorYoutubedl = 0; // will contain command output int exit_status = 0; g_spawn_sync(NULL, cmd, NULL, 0, NULL, NULL, &output, &errorYoutubedl, &exit_status, &error); if (error!=NULL) { g_print(" Errore: %s\n",error->message); g_error_free (error); } if (strlen(errorYoutubedl)!=0) { g_print("Errori: %s\n", errorYoutubedl); errorYoutubedl=g_strdup(""); } return output; }