Bonjour à vous!

J'ai juste une erreur de write avec:
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
void    my_error()
{
  printf("%d %s", errno, strerror(errno));
}
 
int     my_strlen(char *str)
{
  int   i;
 
  i = 0;
  while (str[i] != '\0')
      i = i + 1;
  return (i);
}
 
void    my_putstr(char *str)
{
  int   verif;
 
  verif = write(1, str, my_strlen(str));
  if (verif == 0)
    my_error();
}
 
int     main()
{
  my_putstr("toto");
}
"toto" s'affiche bien.
Et je test le retour du write à 0 pour une raison, que j'expliquerais.
ensuite, j'ajoute le code à ma lib:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
void    my_error()
{
  printf("%d %s\n", errno, strerror(errno));
}
 
void    my_putstr(char *str)
{
  int   verif;
 
  verif = write(1, str, my_strlen(str));
  if (verif == 0)
    my_error();
}
Et lorsque j'utilise ma librairie, il me dit que le retour du write dans celui-ci vaut 0!
Ca segV!
J'ai comme retour de strerror:
Je ne trouve malheureusement pas la raison...
Quelqu'un le sait?