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.
Jar Jar
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é.
Dj_Jim
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.....
cycojesus
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]
Titoine42
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)