La siguiente sección describe los cambios de comportamiento en determinados comandos y normas en el Sistema operativo Solaris 10.
El Sistema operativo Solaris 10 incluye Bash 2.0.5b. Este intérprete de comandos ya no exporta automáticamente las siguientes variables al entorno:
HOSTNAME
HOSTTYPE
MACHTYPE
OSTYPE
Este nuevo comportamiento se produce incluso si el intérprete de comandos asigna valores predeterminados a estas variables.
Solución: exporte estas variables manualmente.
El comportamiento de /usr/bin/ln se ha modificado para cumplir todas las normas, de la SVID3 a la XCU6. Si utiliza el comando ln sin la opción -f para crear un enlace a un archivo de destino existente, el enlace no se crea. En su lugar, se escribe un mensaje de diagnóstico en el error estándar y el comando enlaza todos los archivos de origen restantes. Por último, el comando ln se cierra con un valor de error.
Por ejemplo, si el archivo b existe, la sintaxis ln a b genera el siguiente mensaje:
ln: b: File exists |
Este cambio de comportamiento afecta a las secuencias de comandos del intérprete existentes o a los programas que incluyen el comando ln sin la opción -f. Las secuencias de comandos que solían funcionar es posible que ahora den un error en el Sistema operativo Solaris 10.
Solución: utilice la opción -f con el comando ln. Si tiene secuencias de comandos existentes que ejecuten la utilidad de vínculo, modifique estas secuencias de comandos para que sean acordes con el nuevo comportamiento del comando.
En el Sistema operativo Solaris 10, tcsh se ha modernizado a la versión 6.12. Esta versión no acepta variables de entorno cuyos nombres utilicen un signo de guión o igual. Las secuencias de comandos que contienen líneas setenv y que funcionaban en versiones anteriores de Solaris pueden generar errores en la versión actual de Solaris 10. Aparece el mensaje de error siguiente.
setenv: Syntax error |
Para obtener más información, consulte la página de comando man tcsh para el Sistema operativo Solaris 10.
Solución: no utilice guiones o el símbolo igual (=) para las variables de entorno.
Las aplicaciones que se crearon en un modo cumplimiento estricto con C estándar se verán afectadas por cambios de comportamiento en determinadas funciones de biblioteca. Por ejemplo, las aplicaciones que se compilaron utilizando el modo de compilación cc -Xc o c89. El comportamiento se ha cambiado para las siguientes funciones de biblioteca:
fgetc()
fgets()
fgetwc()
fgetws()
getc()
getchar()
gets()
getwc()
getwchar()
getws()
Una interpretación formal de la norma 1990 C requiere que después de definir una condición de final de archivo, el archivo no devuelve más datos en las siguientes operaciones de entrada. La excepción es si el puntero del archivo se vuelve a colocar o si la aplicación elimina explícitamente el error y los indicadores de fin de archivo.
El comportamiento del resto de modos de compilación se mantiene igual. Específicamente, las interfaces pueden leer datos adicionales recién escritos en la cadena después de haber definido el indicador de fin de archivo.
Solución: llame a las funciones fseek() o clearerr() en la cadena para leer datos adicionales después de que la condición EOF se haya notificado en la cadena.
Debido a que los UID, los ID de procesador y el tiempo de ejecución acumulado son más grandes, las columnas de resultados del comando ps se han ensanchado. Las secuencias de comandos del cliente no asumirán las columnas de resultados fijas.
Solución: las secuencias de comandos deberían utilizar la opción - o del comando ps.
Si desea obtener más información, consulte la página de comando man ps(1)
El comando ping -v produce un error cuando el comando se aplica a las direcciones que utilizan la versión 6 de protocolo de Internet (IPv6). Aparece el mensaje de error siguiente.
ping: setsockopt IPV6_RECVRTHDRDSTOPTS Invalid argument |
Solución: Ninguna. Para obtener la misma información del paquete ICMP que proporciona ping -v, utilice el comando snoop.