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

  FORUM HardWare.fr
  Programmation

  [C/UNIX] Probleme louche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/UNIX] Probleme louche

n°106675
manegarm
Posté le 01-03-2002 à 15:20:17  profilanswer
 

Voila mon bout de code :
 
int  main(int argc, char **argv)
{
  int  fd;
  int  val;
  struct exec head;
 
  if (argc < 2)
     exit(0);
 
  if ((fd = open(argv[1], O_RDONLY) == -1))
    exit(0);
 
  puts ("avant" );
 
  if ((val = read(fd, &head, sizeof(head))) == -1)
    exit(0);
 
  puts ("apres" );
}
 
Il reste bloque et n'affiche ajmais le "apres".
Help

mood
Publicité
Posté le 01-03-2002 à 15:20:17  profilanswer
 

n°106687
Titoine42
Posté le 01-03-2002 à 15:29:47  profilanswer
 

puts marche avec des streams si j'ai bon souvenir donc fait un flush à la fin
 
sinon, fait plutot des writes pour ce genre de debug, au moins tu est sûr que si rien n'est affiché, c'est qu'il n'est pas arrivé au write

n°106692
manegarm
Posté le 01-03-2002 à 15:33:46  profilanswer
 

je viens de faire un my_puts, ca change rien :
 
void   my_puts(char *chaine)
{
   write(1, chaine, strlen(chaine));
}

n°106712
Titoine42
Posté le 01-03-2002 à 15:57:50  profilanswer
 

elle est dans quel .h ta structure head? (j'ai le flemme de chercher)
 
sinon, tu es sûr de la validité du fichier que tu ouvres?
 
PS: le exit code 0 signifie que ton programme s'est terminé normalement donc je pense qu'un exit(1) serait plus juste (je sais ça ne résoud pas ton problème)
 
PPS: utilises gdb (ou ddd si tu veux du mode graphique)

n°106751
cycojesus
Mèo Lười
Posté le 01-03-2002 à 17:00:26  profilanswer
 

Manegarm a écrit a écrit :

Voila mon bout de code :
 
int  main(int argc, char **argv)
{
  int  fd;
  int  val;
  struct exec head;
 
  if (argc < 2)
     exit(0);
 
  if ((fd = open(argv[1], O_RDONLY) == -1))
   exit(0);
 
  puts ("avant" );
 
  if ((val = read(fd, &head, sizeof(head))) == -1)
    exit(0);
 
  puts ("apres" );
}
 
Il reste bloque et n'affiche ajmais le "apres".
Help  




 
Ca a peut-être rien à voir mais y'aurait pas comme un pb de parenthèse ?!
 
Sinon ça peut venir de ton open et/ou ton read qui sont bloquant ET qui son bloqués qqpart
 
Autre chose, dans tes if il me semble que tu test pas le bon truc. Tel que c'est fait là tu la véracité du = et non pas la valeur de retour de tes fonctions. Fait plutôt comme ça :
 if (read(fd, &head, sizeof(head) == -1)
    exit(0);

 

[jfdsdjhfuetppo]--Message édité par cycojesus--[/jfdsdjhfuetppo]


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
n°106784
Dj_Jim
Posté le 01-03-2002 à 18:12:51  profilanswer
 

j'ai peut etre pas tout suivi mais pourkoi tu fais po un printf plutot kun puts???
si tu fais un printf("apres\n" );
ya des chances pourkil l'affiche ton "apres" et ke tu te rende compte ke l'erreur vienne dot part.....

n°106851
Jar Jar
Intaigriste
Posté le 01-03-2002 à 21:24:38  profilanswer
 

Dj_jim a écrit a écrit :

j'ai peut etre pas tout suivi mais pourkoi tu fais po un printf plutot kun puts???
si tu fais un printf("apres\n" );
ya des chances pourkil l'affiche ton "apres" et ke tu te rende compte ke l'erreur vienne dot part.....



printf ou puts, il faut mettre un fflush(stdout) pour être sûr que ce soit affiché.

n°106994
Dj_Jim
Posté le 02-03-2002 à 13:26:05  profilanswer
 

Jar Jar a écrit a écrit :

 
printf ou puts, il faut mettre un fflush(stdout) pour être sûr que ce soit affiché.  




non non des fois les \n a la fin d'un chaine de caracteres forcent l'affichage.


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

  [C/UNIX] Probleme louche

 

Sujets relatifs
[VC++6] Problème de style d'écriture[C/Unix] Programmation systeme
[ P H P ] BIG probleme with SESSION ! plz help ca urge !Adresse MAC a recuperer sur UNIX
[newbie is back] Probleme de PHP avec Free (Unable to connect to mySql[HTML] probleme avec un text area...
(Visual Basic) Probleme de late binding sous Excel 97le probleme de hanoi
probleme accessProblème d'en-têtes de mails avec PHP
Plus de sujets relatifs à : [C/UNIX] Probleme louche


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