Je dois ouvrir une visionneuse pour un type mime donné. comment faire ça sous Linux. Je suppose que la méthode serait spécifique à l'environnement de bureau en cours d'utilisation. Je veux le faire grâce à un programme en C.Comment trouver quel programme utiliser pour un type mime donné sous linux?
Répondre
Il existe des API Gnome qui traitent les types MIME pour vous (déclarés dans les en-têtes tels que <libgnomevfs/gnome-vfs-mime-handlers.h>
) mais je pense que comprendre ce qui se passe sous les couvertures est également utile.
Les fonctions en question essentiellement lire, d'analyser et le contenu présentent certains fichiers de configuration pour vous et here est une explication claire des fichiers que Gnome utilise pour associer les types MIME avec des fichiers, à savoir:
extension .mime in the $gnome/share/mime-info directory or from the ~/.gnome/mime-info directory.
The file $gnome/share/mime-info/gnome.mime is special, as it contains the defaults for gnome, and is read first. In addition, the file ~/.gnome/mime-info/user.mime is read last.
Comme expliqué dans la section "Touches par défaut" de cette URL, des clés telles que open
, view
etc sont ce qui vous donne les commandes à utiliser pour diverses actions génériques (et, via "tags", pour des actions nommées spécifiques aussi).
Pour un exemple de code C utilisant l'API, voir par ex. la fin de this thread.
- 1. Comment trouver quel processus fonctionne Linux à un moment donné?
- 2. URN pour MIME Type
- 3. Quel programme crée un tableau C donné à un fichier?
- 4. Quel est le type MIME correct à utiliser pour un flux RSS?
- 5. Enregistrer des extensions de fichiers/types mime sous Linux
- 6. Comment trouver l'espace disque libre pour un chemin donné sur un shell Linux?
- 7. Quel type MIME dois-je utiliser pour les requêtes jQuery Autocomplete?
- 8. Comment ajouter un type MIME à .htaccess?
- 9. quel linux utiliser pour le développement embedded-linux-qt 4?
- 10. Comment obtenir l'assembly (System.Reflection.Assembly) pour un type donné dans .Net?
- 11. Comment nommer un thread sous Linux?
- 12. Répertoire du programme en cours sous Linux?
- 13. Quel type de données utiliser?
- 14. Comment utiliser la JVM pour un fichier jaas.conf donné?
- 15. Comment trouver des informations dans un fichier en utilisant des expressions régulières sous Linux
- 16. Comment déterminer le type de fichier sous Linux?
- 17. Comment chronométrer un programme s'exécutant sous Windows?
- 18. Comment utiliser une commande linux pour un ensemble de fichiers
- 19. Quel type de lien utiliser pour FeedBurner SmartFeed
- 20. Fichiers objets dans un exécutable sous Linux
- 21. Comment trouver un identifiant de programme COM?
- 22. Développement sous GUI sous Linux
- 23. Que dois-je utiliser sur linux pour rendre un programme python exécutable
- 24. Pouvez-vous trouver quel compilateur a été utilisé pour compiler un programme?
- 25. Requête Linq pour inclure un sous-type
- 26. Quel est le meilleur moyen de communication interprocesseur sous Linux?
- 27. Enregistrer un nouveau type mime dans ColdFusion (Java)
- 28. SQL Quand utiliser quel type de données
- 29. Python: trouver uid/gid pour un nom d'utilisateur/nom de groupe donné (pour os.chown)
- 30. Comment obtenir l'adresse mac pour une interface dans Linux en utilisant un programme C?
Je ne suis pas en mesure d'obtenir le programme donné dans le thread mentionné à compiler. il contient un fichier config.h qui n'est pas présent dans mon/usr/include /. En outre, je reçois beaucoup d'erreurs de compilation dans les fichiers d'en-tête inclus. Comment régler ceci? comme ceux-ci: /usr/include/glib/gconvert.h:108: erreur: déclaration prévue spécificateurs ou '...' avant 'gssize' une autre erreur: /usr/include/glib/gi18n-lib. h: 27: 2: error: #error Vous devez définir GETTEXT_PACKAGE avant d'inclure gi18n-lib.h. –