Linux 3.10.0-514.10.2.el7.x86_64 #1 SMP Mon Feb 20 02:37:52 EST 2017 x86_64 x86_64 x86_64 GNU/Linux
Oracle : Release 11.2.0.4.0
Pro*C/C++: Release 11.2.0.4.0
===============================
Bonjour à tous , je suis en train de migrer une application de HP/UX vers Linux
et j'ai un gros soucis sur un Pro*C qui à un comportement différent entre ces 2 plateformes et la commande "system"
ce soucis se produit uniquement si je suis connecté à une base ORACLE
j'ai fait un little script pour vous montré le Pb
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
 
EXEC SQL INCLUDE SQLCA;
 
main()
{
   EXEC SQL BEGIN DECLARE SECTION;
   VARCHAR uid[60];
   EXEC SQL END DECLARE SECTION;
 
   sprintf((char *) uid.arr,"%s\0","scott/tiger");
   uid.len = 11;
 
   printf("----------------------------------------------------------------\n");
   lance_cmd("echo Avant connexion");
   lance_cmd("nimportenawak");
 
   EXEC SQL CONNECT :uid;
   printf("----------------------------------------------------------------\n");
   printf("Connexion Oracle = (%d)\n",sqlca.sqlcode);
 
   printf("----------------------------------------------------------------\n");
   lance_cmd("echo Apres connexion");
   lance_cmd("nimportenawak");  
}
 
 
lance_cmd(char *cmd)
       {
       int r;
       r = system(cmd);
       printf("(%s)==>Resultat(%d)\n",cmd,r);
       }
Le resultat est conforme sous HP/UX
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
----------------------------------------------------------------
Avant connexion
(echo Avant connexion)==>Resultat(0)
sh: nimportenawak:  not found.
(nimportenawak)==>Resultat(32512)
----------------------------------------------------------------
Connexion Oracle = (0)
----------------------------------------------------------------
Apres connexion
(echo Apres connexion)==>Resultat(0)
sh: nimportenawak:  not found.
(nimportenawak)==>Resultat(32512)
par contre sous Linux , une fois connecté le code retour de la commande system() est systématiquement à "-1" et je ne m'explique pas ce problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
----------------------------------------------------------------
Avant connexion
(echo Avant connexion)==>Resultat(0)
sh: nimportenawak: command not found
(nimportenawak)==>Resultat(32512)
----------------------------------------------------------------
Connexion Oracle = (0)
----------------------------------------------------------------
Apres connexion
(echo Apres connexion)==>Resultat(-1) 
sh: nimportenawak: command not found
(nimportenawak)==>Resultat(-1)
si vous avez une idée , je suis preneur
Est-ce que les options de compilation (forcement différente entre HP/UX et Linux) pourrait expliquer ce dysfonctionnement ?
merci de votre aide