• [^] # Re: Mensonge !

    Posté par . En réponse à la dépêche Fabrice Bellard bat le record des décimales de Pi. Évalué à 1.

    Dans un premier temps on pourrait se dire qu'il suffit de travailler sur le fichier directement avec cut : cut -c -4 pi.txtsauf que cut travaille sur des lignes complètes. Dans le cas où Fabrice B. aurait sauté des lignes toutes les x décimales on se retrouverait avec une sortie du genre :

    3.14
    _des_chiffres_
    _des_chiffres_
    _des_chiffres_
    [...]
    _des_chiffres_

    Si il a écrit les décimales sur une seule ligne, dans ce cas cut va quand même lire tout le fichier jusqu'à rencontré sa fin de ligne ou l'EOF, le résultat nous concernant est toujours le même, on parcours 2.5To de données. Peut être mis en évidence avec strace : strace -s 10000 cut -c -4 pi.txt
    La commande head travaille aussi sur des lignes complètes, aucune amélioration.
    On peut alors utiliser dd, od (le résultat serait a interpréter) ou un script vite fait, pour ne récupérer que les 4 premiers octets :
    dd if=pi.txt bs=4 count=1 2>/dev/null;echo
    ou
    od -N4 -a pi.txt
    ou encore

    #!/usr/bin/env python
    # ouverture du filedescriptor en supposant
    # que le fichier ./pi.txt existe
    src=open('pi.txt', 'r')
    # on lit 4 octets et on les affiche
    print(src.read(4))
    # fermeture du filedescriptor
    src.close