Bonjour,
Je développe un editeur qui ouvre des fichiers en onglets. Mon but est de faire que lorsque l'application est déjà lancée, qu'on l'appelle pour ouvrir un fichier, ce fichier soit ouvert dans l'application (l'instance) déjà en cours.
J'utilise les sockets pour la communication entre les processus, le méchanisme fonctionne à un détail prêt: comment savoir que l'application est déjà lancée ?
Hypothèses de départ:
- essayer de trouver une solution portable (linux/win/mac), au pire des cas utiliser les ifdef par OS
- C++, gtk, stl et glib
Voici à quoi j'ai pensé (ou lu, je n'invente rien)
- le port (prédéfini) est-il déjà occupé lors de la création de la socket ?
Ca oblige à connecter la socket sur un numéro de port fixe, si un autre développeur a fait son appli sur le même que moi, et que son application est lancée, je suis bloqué... Question de probabilités, mais c'est pas très joli non ?
- fichier de lock temporaire ?
Mon fichier sera-t-il bien supprimé en cas de crash(hm) ou autres cas d'arrêts ?
- Regarder la liste des processus ?
Pas très portable ni élégant, mais ça devrait marcher à tous les coups...
Quel est votre avis là-dessus ?
Merci
Partager