[C] pb de passage de parametres

pb de passage de parametres [C] - C - Programmation

Marsh Posté le 28-10-2003 à 18:47:04    

j'ai un autre petit pb, je m'explique :
 
j'ai le main qui appele une fonction (access) en passant un entier en parametre. Cette fonction access appele une autre fonction (lecture_fichier) en passant comme parametre le meme entier. mais il n'a plus la bonne valeur dans la fonction lecture_fichier... :(
 
 

Code :
  1. void lecture_fichier( char *path, int sock) {
  2. ...
  3. printf("sock2 = %d\n",sock);
  4. }
  5. void access ( int sock ) {
  6. ...
  7. printf("sock1 = %d\n",sock);
  8. lecture_fichier(path,sock);
  9. }


 
lorsque je lance le prog ca affiche ca :
 
sock1 = 4
sock2 = 1937007724
 
why ?

Reply

Marsh Posté le 28-10-2003 à 18:47:04   

Reply

Marsh Posté le 28-10-2003 à 22:45:15    

VB HELP a écrit :

j'ai un autre petit pb, je m'explique :
 
j'ai le main qui appele une fonction (access) en passant un entier en parametre. Cette fonction access appele une autre fonction (lecture_fichier) en passant comme parametre le meme entier. mais il n'a plus la bonne valeur dans la fonction lecture_fichier... :(
 
 

Code :
  1. void lecture_fichier( char *path, int sock) {
  2. ...
  3. printf("sock2 = %d\n",sock);
  4. }
  5. void access ( int sock ) {
  6. ...
  7. printf("sock1 = %d\n",sock);
  8. lecture_fichier(path,sock);
  9. }


 
lorsque je lance le prog ca affiche ca :
 
sock1 = 4
sock2 = 1937007724
 
why ?
 


 
Tu dois surement faire autre chose car chez moi, ça marche bien!
Mon fichier:

Code :
  1. #include <stdio.h>
  2.                                                                                
  3. void lecture_fichier( char *path, int sock) {
  4.     printf("sock2 = %d\n",sock);
  5. }
  6.                                                                                
  7. void access ( int sock ) {
  8.     printf("sock1 = %d\n",sock);
  9.     lecture_fichier("salut",sock);
  10. }
  11.                                                                                
  12. int main(int argc, char **argv)
  13. {
  14.     access(atoi(argv[1]));
  15.                                                                                
  16.     return 0;
  17. }

Reply

Marsh Posté le 30-10-2003 à 22:47:42    

access existe deja, c est une fonction systeme (pour plus d info man 2 access)
 
sinon change tout betement le  nom de ta fonction

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed