CUESTIÓN
Al compilar la práctica desde
Linux o Solaris, me dice que no reconoce la macro
UID_NO_CHANGE
. ¿Le han hecho un
"trabajo" al compilador y he de acudir a la
Pitonisa Lola?
SOLUCIÓN
No, mejor no. No sea que te encienda dos velas negras. La solución al
enigma es más de este mundo. Lo que ocurre simplemente es que
UID_NO_CHANGE
es una macro que, en HPUX (tejo), está
definida en los ficheros de cabecera como:
#define UID_NO_CHANGE -1
Tanto en Linux como en Solaris esta macro no está definida, como
podéis comprobar en la página de manual (man lchown
).
En estos sistemas hay que poner el valor numérico directamente.
Pero, si en un arrebato de perfección queremos hacer código exquisitamente
compatible con todos los sistemas, lo correcto sería poner:
#ifndef UID_NO_CHANGE
#define UID_NO_CHANGE -1
#endif
[...]
lchown("pepe.txt", UID_NO_CHANGE, ...
© 2002 Guillermo González Talaván.