Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

code des commandes de base de linux

3 réponses
Avatar
olivier
bonjour!

Pourriez vous me dire où trouver les codes sources des commandes de base de
linux ( echo , cd , exit...)

Merci par avance

PS: La distribution m'importe pas

3 réponses

Avatar
shal
olivier wrote:
bonjour!


salut,

Pourriez vous me dire où trouver les codes sources des commandes de base de
linux ( echo , cd , exit...)

Merci par avance

PS: La distribution m'importe pas



Une partie sont la :

http://ftp.gnu.org/pub/gnu/coreutils/

Avatar
Basile Starynkevitch [news]
Le 08-05-2004, olivier a écrit :
bonjour!

Pourriez vous me dire où trouver les codes sources des commandes de base de
linux ( echo , cd , exit...)


Il faut savoir que cd et exit doivent nécessairement être implantés
(builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il
interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être
executés par le processus shell lui-même.

En pratique, echo, time, printf sont aussi souvent dans l'interprete
de commande, mais il peut exister des binaires /bin/echo etc... aussi


Je conseille donc la lecture d'un bon livre sur les appels systèmes
Unix et la programmation système Unix.


--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net
aliases: basile<at>tunes<dot>org = bstarynk<at>nerim<dot>net
8, rue de la Faïencerie, 92340 Bourg La Reine, France

Avatar
no_spam
On Sun, 09 May 2004 07:31:42 +0000, Basile Starynkevitch [news] wrote:

Le 08-05-2004, olivier a écrit :
bonjour!

Pourriez vous me dire où trouver les codes sources des commandes de base de
linux ( echo , cd , exit...)


Il faut savoir que cd et exit doivent nécessairement être implantés
(builtin) dans l'interprete de commandes (bash, zsh etc...), puisqu'il
interfacent les appels systèmes chdir(2) et _exit(2) qui doivent être
executés par le processus shell lui-même.

En pratique, echo, time, printf sont aussi souvent dans l'interprete
de commande, mais il peut exister des binaires /bin/echo etc... aussi


POSIX dit exactement l'inverse:
ces outils doivent impérativement exister en tant que binaires séparés
(sinon, on ne peut pas les appeler en C) et peuvent éventuellement
être implémentés en tant que builtin, généralement pour des raisons
de performances: ça évite des multitudes d'appels systèmes
fork();execve(); et d'accès aux disques lors de l'execution de scripts.

Les builtins minimums sont:
alias, bg, cd, command, false, fc, fg, getopts, jobs, kill, newgrp, pwd,
read, true, umask, unalias, wait.
Mais ils doivent impérativement être également implémentés en tant
qu'utilitaires à part:
"all the standard utilities, including the regular built-ins in the table,
but not the special built-ins described in Special Builltins Utilities,
shall be implemented so that they can be accessed via the exec family of
functions...".
Les special builtins sont des fonctions qui n'ont un sens que dans
un script shell:
break, colon, continue, dot, eval, exec, exit, export, readonly, return,
set, shift, times, trap, unset.