IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Vieux programme C


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Vieux programme C
    Bonjour,
    J'ai récemment sorti des cartons un programme âgé de 25ans. Celui-ci me servait à la gestion du contenu d'un silo pour l'archivage, et il tournait sous système SunOS BSD 4.2 (32 bits). Voilà aujourd'hui étant sous Solaris 10, je voudrait connaitre les prérequis nécessaires (hormis un compilateur C ou GCC) pour qu'il puisse tourner sans problème en environnement 64 Bits.
    D'avance merci

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 895
    Points : 7 254
    Points
    7 254
    Par défaut
    Qui peut le plus peut le moins.

    Si tu as un environnement 64 bits, il peut exécuter des programmes 32 bits, c'est l'inverse qui poserait problème.

    Pourquoi ne testes-tu pas?

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 395
    Points : 23 756
    Points
    23 756
    Par défaut
    Bonjour,

    Si tu disposes du code source, et s'il fonctionnait déjà sur un système 32 bits, tu dois pouvoir le recompiler sans problème. Si tu passes de SunOS à Solaris 10, j'imagine que tu restes sur une architecture similaire.

    Les choses qui pourraient éventuellement te causer quelques difficultés sont, d'abord, la rigueur relative portée à la rédaction du programme en C. En 1987, le C était déjà très répandu mais pas aussi « universel » et l'accès aux informations et aux règles de « bonne pratique » était beaucoup plus limité qu'il l'est aujourd'hui. Il se peut que des raccourcis aient été faits sur différents types de données. Cependant, si ton programme a été initialement développé sous Unix et à l'époque, il y a des chances pour qu'il soit propre de ce côté-là.

    Ensuite, ton programme fait sans doute appel à plusieurs bibliothèques pour agir avec l'utilisateur et il se peut que certaines d'entre elles soient aujourd'hui hors d'âge. Il te faudra peut-être réinstaller certaines bibliothèques de compatibilité pour y parvenir. Cependant, il y a des chances pour qu'un programme de gestion de silo de cette époque fonctionne soit en mode texte dans un terminal, soit utilise les bibliothèques X-Window commerciales standard de l'époque (ex : Motif), auquel cas tu ne devrais avoir aucun problème à les faire fonctionner aujourd'hui.

    Malgré tout, il faut quand même porter une attention particulière à l'architecture que tu utilises et utilisait à l'époque. Si j'en crois Wikipédia, BSD 4.2 a servi de base à SunOS jusqu'à sa version 3.0 en 1986 et il y a de fortes chances pour que la machine qui le faisait tourner alors soit un 68000 et qu'aujourd'hui ce soit un x86_64.

    Il va donc falloir jeter un œil circonspect à la manière dont ton programme enregistre ses données. S'il le fait en binaire, en utilisant des structures C pour déclarer des champs et en les enregistrant telles quelles avec un write (fd,&ma_structure,sizeof ma_structure);, alors tes données risquent d'être incompatibles avec ton programme fraîchement recompilé, non seulement à cause de la taille des champs mais également leur endianness et le padding éventuel appliqué aux structures.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Attention également aux problèmes de pointeurs stockés dans des entiers (cela arrive avec certaines bibliothèques quand on doit leur passer des pointeurs de fonction "callback"): Il faudra changer les variables en question pour qu'elles aient la même taille qu'un pointeur (type standard intptr_t)

Discussions similaires

  1. Excécuter mes vieux programmes ?
    Par mimanot dans le forum Fortran
    Réponses: 12
    Dernier message: 30/03/2010, 22h20
  2. [Visual FoxPro] Vieux programme à déchiffrer...
    Par pingos dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 25/04/2006, 11h44
  3. comment lancer mes vieux programmes sur BDS2006
    Par emmental dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/01/2006, 13h07
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo