-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El ls -l muestra los sig datos:
 
los permisos del archivo, el n�mero de� enlaces�que� tiene,� el� nombre�del���
propietario,� el� del� grupo al que pertenece, el tama�o (en bytes), una 
marca de tiempo, y el nombre�del� archivo.

De forma� predeterminada,�la marca de tiempo que se muestra es la de la 
�ltima modificaci�n.

Al parecer, lo que sucede es culpa del ls, el cual pertenece al paquete 
fileutils por lo que busque los fuentes del paquete para ver como estaba el 
archivo ls.c. Mis conocimientos de C son b�sicos, as� que perdonen si meto la 
pata ; ))

Hab�a dicho antes que toma el tiempo de modificaci�n por defecto para mostrar 
o time_mtime. Si nos fijamos en los fuentes hay una comparaci�n que se hace 
para ver que tiempo pone.

Cando se ejecuta el ls -l hay un case tendr�a que setear a 1 a la variable 
full_time en caso de que se ponga el indicador --full-time.
Dado que con ls -l esto no ocurre, tomara el camino del false.

Hay un if que lo eval�a para determinar la forma de mostrar el tiempo:

if (full_time)
        long_time_format[0] = long_time_format[1] = 
        dcgettext (NULL, "%a %b %d %H:%M:%S %Y", LC_TIME);
else
        {
        long_time_format[0] = dcgettext (NULL, "%b %e %Y, LC_TIME);
        long_time_format[1] = dcgettext (NULL, "%b %e %H:%M", LC_TIME);
        }

Al setear esta forma, luego hace una comparaci�n del tiempo, para ver si el 
archivo tiene un tiempo de modificaci�n reciente o no.
Esto lo hace haciendo una peque�a cuenta que se fija si es menor a 6 meses 
con lo que sabe que es reciente.

La cantidad de segundos en un a�o se calcula con el calendario Gregoriano que 
es 365.2425 * 24 * 60 *60 = 31556952 segundos.

El tiempo actual es tomado desde los segundos que pasaron desde 1970 hasta el 
tiempo marcado en el mtime.

static time_t current_time = TYPE_MINIMUM (time_t);
static int current_time_ns = -1;

Entonces veamos algunas cuentas las cuales se hacen empleando la sig 
estructura.

six_months_ago = current_time - 31556952 / 2;
      recent = (six_months_ago <= when && (when < current_time
                    || (when == current_time && when_ns <= current_time_ns)));
      fmt = long_time_format[recent];


Al comparar, cuando paso un minuto la variable recent se pone en 0, antes de 
ese minuto se seteo en 1

Recordemos que:
long_time_format[0] = dcgettext (NULL, "%b %e %Y, LC_TIME);
long_time_format[1] = dcgettext (NULL, "%b %e %H:%M", LC_TIME);

Por lo que parece, despues de haber puesto toda esta chorrada, no ha sabido 
el ls si el archivo tine mas o menos de 6 meses, por lo cual ha puesto mal la 
variable long_time_format que es la que indica como se mostrara en el comando 
ls -l el tiempo definido en mtime, que es el usado por defecto.

Resta para Uds un peque�o ejercicio que no he podido hacer por falta de 
tiempo y es determinar dado los datos del mail de Alejandro si al pasar un 
minuto despues de las 12:00 del 2 de Enero de 2002, la comparaci�n para ver 
si es mas viejo que 6 meses se esta seteando mal.

Espero que se entienda ; ))

Si, ya se, me lime ; ))

Saludos.-



El Thursday 03 January 2002 10:38, Alejandro Gomez Fernandez escribi�:
> Esto que les muestro es lo que yo llamo �raro�:
>
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020099_316_2736.txt
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020104_316_2741.txt
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020103_316_2740.txt
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020102_316_2739.txt
> -rw-r--r-- 1 102 101 1156 ene 2 12:00 pallet_200201020105_317_2742.txt
> -rw-r--r-- 1 102 101 1169 ene 2 2002 pallet_200201020106_318_2743.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020109_319_2746.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020108_319_2745.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020107_319_2744.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020110_319_2747.txt
>
> Lo notan? Para verlo van a necesitar un programa de correo que soporte
> html...
> Para aquellos que no lo tengan al ver este mail, les cuento que
> normalmente, despues de la fecha (mes y dia) aparece la hora de la ultima
> modificacion del archivo en cuestion. (En este caso tambien es la fecha
> de creacion). Ahora, Si se fijan, en los ultimos 5 archivos de esta
> muestra, la hora �magicamente� se transformo en el a�o!!!! Estos archivos
> se crearon el mismo dia, en orden consecutivo dado por la secuencia de
> los digitos que continuan a la palabra pallet_20020102xxxx .
> Lo de los numeros 102 y 101 son los el usuario y grupo del servidor
> original y que no existen en mi equipo...
>
> Alguna idea?
>
> Gracias!!!
>
>
> Alejandro.

- -- 
- --
Sebasti�n D. Criado - [EMAIL PROTECTED]
L.U.G.R.o - http://www.lugro.org.ar
Linux Registered User # 146768
- -------------------------------------------------------------------
"Si el Universo fuera un programa estar�a hecho en C, y correr�a sobre
un sistema UNIX"
                                                    An�nimo.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8NHlJ8hmHQ8ZCg0IRAimeAJ9PEjqfo/cnSmIXCqU6WR4PDyH12QCgqGnb
vMa9RlHv2eTCFzFU3ks7pIY=
=cVwn
-----END PGP SIGNATURE-----

Responder a