Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1721 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [RESOLU] Signification d'un return

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Signification d'un return

n°1667299
Thordax
Shop smart. Shop S-Mart !
Posté le 07-01-2008 à 18:14:34  profilanswer
 

Hello tout le monde,  
 
J'ai un doute quant à la signification de cette ligne :
 
return err < 0 ? errno : 0
 
Qui se trouve à la fin d'une fonction simple issue d'un package (bridge-utils) :
 

Code :
  1. int br_add_interface(const char *bridge, const char *dev)
  2. {
  3. struct ifreq ifr;
  4. int err;
  5. int ifindex = if_nametoindex(dev);
  6. if (ifindex == 0)
  7.  return ENODEV;
  8. strncpy(ifr.ifr_name, bridge, IFNAMSIZ);
  9. #ifdef SIOCBRADDIF
  10. ifr.ifr_ifindex = ifindex;
  11. err = ioctl(br_socket_fd, SIOCBRADDIF, &ifr);
  12. if (err < 0)
  13. #endif
  14. {
  15.  unsigned long args[4] = { BRCTL_ADD_IF, ifindex, 0, 0 };
  16.      
  17.  ifr.ifr_data = (char *) args;
  18.  err = ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr);
  19. }
  20. return err < 0 ? errno : 0;
  21. }


 
La fonction retourne-t-elle une valeur négative dans le cadre d'une erreur, et sinon, elle renvoie 0, est-ce bien cela ?


Message édité par Thordax le 07-01-2008 à 19:07:50

---------------
Atari 520 ST 256 Ko
mood
Publicité
Posté le 07-01-2008 à 18:14:34  profilanswer
 

n°1667313
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 07-01-2008 à 18:34:28  profilanswer
 

Hello,
si je ne m'abuse, c'est une structure ternaire : un test est réalisé (err < 0) et si vrai, il retourne errno, si faux, il retourne zéro.  
Donc il retourne errno (je pense un n° d'erreur ?) ou, si "err" est négatif, zéro.


Message édité par NewsletTux le 07-01-2008 à 18:35:29

---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1667318
Thordax
Shop smart. Shop S-Mart !
Posté le 07-01-2008 à 18:38:59  profilanswer
 

Merci, NewsletTux, donc cela signifie que dans tous les cas, la fonction renvoie un code d'erreur, et que si celui-ci est négatif, l'erreur renvoyée est 0 ?
 
On peut donc supposer qu'une erreur de 0 signifie "pas d'erreur" ? :d


---------------
Atari 520 ST 256 Ko
n°1667319
Taz
bisounours-codeur
Posté le 07-01-2008 à 18:44:57  profilanswer
 

COND ? SI_VRAI : SINON

n°1667321
Elmoricq
Modérateur
Posté le 07-01-2008 à 18:46:42  profilanswer
 

Thordax a écrit :

Merci, NewsletTux, donc cela signifie que dans tous les cas, la fonction renvoie un code d'erreur, et que si celui-ci est négatif, l'erreur renvoyée est 0 ?
 
On peut donc supposer qu'une erreur de 0 signifie "pas d'erreur" ? :d


 
La fonction renvoie un code retour, et non un code d'erreur.
 
L'usage veut qu'une fonction qui retourne 0 s'est bien déroulée.
 
Quant à err, c'est le retour de ioctl() :

RETURN VALUES
     Upon successful completion, the value returned depends  upon
     the  device  control  function,  but  must be a non-negative
     integer.  Otherwise, -1 is returned  and  errno  is  set  to
     indicate the error.


 
Donc si err == -1, ioctl() a échoué, et la variable globale errno contient le code retour (permet d'utiliser perror() ou strerror() ) pour en connaître la cause exacte.

Message cité 1 fois
Message édité par Elmoricq le 07-01-2008 à 18:46:59
n°1667330
Thordax
Shop smart. Shop S-Mart !
Posté le 07-01-2008 à 19:03:08  profilanswer
 

Merci à tous, et merci à Elmomo pour cette réponse supra précise :jap:


---------------
Atari 520 ST 256 Ko

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [RESOLU] Signification d'un return

 

Sujets relatifs
[résolu]probleme de chaine vide non détectée[BASH] Probleme cron et autres [Résolu]
[Résolu] Défine préprocesseur contenant un point[Resolu] [Bash] Ecrire le résultat d'une commande dans un fichier HTML
récupérer le chemin du fichier interprété ? [résolu][RESOLU] [MySQL] Gérer une exception dans le tri d'une requête
[RESOLU] Conversion au format Coplat: "à plat"[Resolu] .NET : Equivalent de ensureVisible sur un webcontrol?
Symbole "&" de batch --> vbs [ résolu ][RESOLU] Ne compter dans classement seulement WHERE count > 5
Plus de sujets relatifs à : [RESOLU] Signification d'un return


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR