-
Notifications
You must be signed in to change notification settings - Fork 16
/
erreurs.txt
79 lines (64 loc) · 4.37 KB
/
erreurs.txt
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
ERREURS
HEADER ==> #<error.h>
MACROS A DEFINIR ==> #_GNU_SOURCE
error_print_progname #Pointeur de fonction de type void, utilisé par error()
#et error_at_line() (global, défaut : NULL)
error_one_per_line #Macro utilisée par error_at_line() (global, défaut : 0)
error_message_count #Macro utilisée par error() et error_at_line() (global,
#défaut : 0)
error(INT_VAL1, # - imprime le nom du programme (tel qu'indiqué dans
INT_VAL2, STR, ...) # program_invocation_name), suivi de ": ". Cependant,
# si (*error_print_progname)() est initialisé,
# exécute la fonction pointée ainsi plutôt (mais
# cette fonction devrait imprimer le nom du programme
# ou quelque chose de similaire, et l'imprimer sur
# stderr)
# - imprime le message spécifié par STR et ...,
# similaire à un format printf
# - si INT_VAL2 est != 0, imprime ensuite ": " suivi du
# résultat de perror(INT_VAL2). INT_VAL2 doit donc
# être un numéro errno
# - imprime une newline
#Si INT_VAL1 est != 0, exécute ensuite exit(INT_VAL1)
#La variable error_message_count est incrémentée de 1.
error_at_line(INT_VAL1, #Même chose, mais ajoute deux arguments :
INT_VAL2, STR1, U_INT, # - Le nom du programme est cette fois suivi de ":" et
STR2, ...) # du numéro de ligne U_INT (on peut utiliser
# __LINE__)
# - puis de ":" et du nom de fichier STR2 (on peut
# utiliser __FILE__)
#De plus, si la variable error_one_per_line n'est pas
#égal à 0, deux invocations d'error_at_line() sur la
#même ligne sont impossibles
BSD ERRORS ==> #Les huit fonctions qui suivent équivalent à errno(),
#sauf que les variables globales error_print_progname,
#error_one_per_line et error_message_count ne sont pas
#utilisées. Préférer error()
HEADER ==> #<err.h>
MACROS A DEFINIR ==> #_BSD_SOURCE
err(INT_VAL, STR, ...) #Equivaut à error(INT_VAL, errno, STR, ...), sauf que si
#errno == 0, "Success" est quand même imprimé
errx(INT_VAL, STR, ...) #Equivaut à error(INT_VAL, 0, STR, ...)
warn(STR, ...) #Equivaut à error(0, errno, STR, ...), sauf que si
#errno == 0, "Success" est quand même imprimé
warnx(STR, ...) #Equivaut à error(0, 0, STR, ...)
HEADER ==> #<stdarg.h>
MACROS A DEFINIR ==> #_BSD_SOURCE
verr(INT_VAL, STR, #
VA_LIST_VAL) #Equivaut à err(), mais avec une VA_LIST_VAL
verrx(INT_VAL, STR, #
VA_LIST_VAL) #Equivaut à errx(), mais avec une VA_LIST_VAL
vwarn(STR, VA_LIST_VAL) #Equivaut à warn(), mais avec une VA_LIST_VAL
vwarnx(STR, VA_LIST_VAL)#Equivaut à warnx(), mais avec une VA_LIST_VAL
HEADER ==> #<errno.h>
MACROS A DEFINIR ==> #_GNU_SOURCE
program_invocation_ #STR contenant le nom du programme, tel que spécifié en
name #en ligne de commande. Ce nom par ailleurs pourrait être
#obtenu :
# - avec argv[0] (si invoqué dans le main(), et dans la
# portée de main()
# - avec /proc/NOMBRE/cmdline
program_invocation_
short_name #Même chose, mais basename