Réponses:
Oui, les deux acceptent et suppriment toutes les entrées, mais leur sortie n'est pas la même:
/dev/null
ne produit aucune sortie ./dev/zero
produit un flux continu d'octets NULL (valeur nulle) .Vous pouvez voir la différence en exécutant cat /dev/null
et cat /dev/zero
.
Essayez cat /dev/null > file
et vous trouverez un vide file
.
Essayez maintenant cat /dev/zero > file
, tout en regardant la taille du fichier ( watch -n 1 du -h file
) augmenter continuellement. En effet, la lecture de /dev/zero
donne un flux infini de caractères \0
(nuls).
Utilisez dd
pour visualiser la différence de manière plus appropriée:
$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s
$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s
/dev/zero
est utilisé pour créer des fichiers fictifs ou des échanges.
Visitez également:
mmap
ping /dev/zero
avec MAP_PRIVATE
est le moyen "portable" d'obtenir un mappage de mémoire anonyme (en l'absence d'extensions comme MAP_ANON
).
/dev/null
ne produit aucune sortie: Il signale EOF immédiatement.
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
* s'enfuit *