(Ouais, je sais, presque six mois depuis le dernier billet)

Deux petits oneliners qui peuvent être utiles si

  • vous avez de bons yeux,
  • votre linux est en x86_64 (AMD64 ou EM64T),
  • vous programmez en assembleur,
  • vous utilisez vous-même les syscalls au lieu d'appeler la libc,
  • vous aimeriez garder une liste de ces appels système sous la main.

Pour imprimer la liste des appels système, dans l'ordre des numéros :

$ awk '/#define __NR_/ {sub(/__NR/, "SYS"); 
       printf("%3s   %s\n", $3, $2)}' \
    < /usr/include/asm-x86_64/unistd.h \
    | enscript -G5r -t "x86_64 syscalls, by number"

Pour imprimer la même liste, mais par ordre alphabétique :

$ awk '/#define __NR_/ {sub(/__NR/, "SYS");
       printf("%-28s %s\n", $2, $3)}' \
    < /usr/include/asm-x86_64/unistd.h \
    | sort | enscript -G5r -t "x86_64 syscalls, by name"

Ces impressions donneront quelque chose de correct tant qu'il n'y aura pas plus de 320 appels système. Au delà, ça va déborder.

Évidemment, si vous ne voulez pas imprimer, vous avez le droit de retirer l'appel à enscript. Et si vous voulez le résultat dans un fichier PostScript, ajoutez l'argument -o fichier.ps à la fin de l'appel à enscript.