Bonjour,

Je débute en programmation et ai commencé par le Langage C. Je débute également sur ce forum... Je vous remercie d'avance de votre indulgence.

Mon problème: j'essaie de créer une fonction de type void qui prend en paramètre un nombre et qui l'affiche avec la fonction write. Je bloque là dessus. J'avoue que je ne maîtrise pas la fonction write car j'ai appris l'affichage en C avec printf, fprintf. C'est dans des exercices que j'ai découvert write().

Des lignes de code sans explication ne me seront d'aucune aide, je souhaite comprendre.

Vos retours sont les bienvenus. Voilà mon code dont l'output est une boucle presque infinie du signe - (moins) qui s'achève par un Segmentation fault (core dumped):

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
29
30
31
32
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
 
void my_putNbr(int nombre);
void my_putchar(char c);
 
int main(int argc, char *argv[])
{
  my_putNbr(-3);
 
  return 0;
}
 
 
void my_putNbr(int nombre)
{
  if (nombre < 0)
  {
    my_putchar('-');
    my_putchar(nombre + 48); // 48 est la valeur Ascii de 0 (zéro)
  }
  else
  {
    my_putchar(nombre + 48);
  }
}
 
void my_putchar(char c)
{
  write(1, &c, 1);
}
Merci de votre aide