php / php/php-src

`stat` only provide timestamp down to second instead of nanosecond

Ouverte
#11,946 2 commentaires 3 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Category: Filesystem Feature
Langage dominant
C
Étoiles
40.4k
Forks
8.2k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

Description

Hi maintainer,

stat in php only provide presicion down to second, but it could be down to nanosecond.

  File: abc.xyz
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 8,2	Inode: 6160531     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 0/root)   Gid: ( 0/root)
Access: 2023-08-12 09:10:14.152726478 +0700
Modify: 2023-08-12 09:10:14.152726478 +0700
Change: 2023-08-12 09:10:14.152726478 +0700
 Birth: 2023-08-12 09:10:14.152726478 +0700
[
  ...,
  "atime" => 1691806214,
  "mtime" => 1691806214,
  "ctime" => 1691806214,
  ...
]

I'm aware that https://linux.die.net/man/2/stat does explain it Since kernel 2.5.48, the stat structure supports nanosecond resolution for the three file timestamp fields..

I was running into this problem today, run test need to ensure directory was created within 1s, which cannot be done if read from php stat.

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

L’issue mentionne l’API stat de PHP et les horodatages stat de Linux capables de gérer les nanosecondes, mais n’indique aucun fichier source ni aucun test. Commencez par localiser l’implémentation PHP et les tests existants pour les champs d’horodatage de stat, puis comparez leurs valeurs avec les horodatages du système de fichiers affichés par Linux stat. La tâche est terminée lorsque PHP expose la précision disponible à la sous-seconde et que le comportement est couvert par des tests.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c, php
Domaine
operating-systems
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.