Beruflich Dokumente
Kultur Dokumente
Introduccin al sistema de
archivos integrado
Versin 4
IBM
AS/400e
Introduccin al sistema de
archivos integrado
Versin 4
IBM
Copyright International Business Machines Corporation 1999, 2000. Reservados todos los derechos.
Contenido
Acerca de la introduccin al sistema de
archivos integrado . . . . . . . . . . v
Quin debe leer el manual Introduccin al sistema
de archivos integrado? . . . . . . . . . . . v
. 1
. 2
15
15
16
19
21
22
24
25
25
. 29
. 29
. 32
. 33
. 36
. 36
. 37
. 38
. 39
. 40
. 41
. 41
. 42
. 43
45
48
48
49
50
51
51
52
54
54
54
56
56
iii
57
59
60
63
63
64
67
67
69
70
70
71
72
73
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
83
84
84
86
86
86
87
87
87
87
vi
Bibliotecas
Archivos de
base de datos
Archivos
continuos
Objetos
Documentos
RV3N076-1
Usuarios AS/400
Aplicaciones
Sistema
de
archivos
Sistema
de
archivos
Sistema
de
archivos
RV3N062-1
.........................................
.........................................
.........................................
Archivo de base de datos orientado a registros
..............................
..............................
.......
.......
..............................
.......
Campo 1
Campo n
Campo 2
Campo 3
Registro 1
Registro 2
Registro n
RV3N081-0
|
|
|
QNetWare
El sistema de archivos QNetWare. Da acceso a datos y objetos locales o
remotos almacenados en un servidor en el que se ejecuta Novell NetWare
4.10 o 4.11, o en Servidores PC autnomos en los que se ejecuta Novell
NetWare 3.12, 4.10, 4.11 o 5.0. El usuario puede montar de forma dinmica
los sistemas de archivos NetWare encima de sistemas de archivos locales
existentes.
QNTC
El sistema de archivos de Windows NT Server. Este sistema de archivos
proporciona acceso a los datos y objetos que se encuentran almacenados en
un servidor con Windows NT 4.0 o una versin superior. Posibilita que las
aplicaciones del AS/400 utilicen los mismos datos que los clientes de
Windows NT. En este caso se incluye el acceso a los datos que se
encuentran en un sistema Windows NT Server que se ejecute en un
Servidor PC integrado. Si desea obtener detalles, puede consultar la
publicacin AS/400 Integracin de OS/400 con Windows NT Server,
SC10-3235 (SC41-5439).
QOpenSys
El sistema de archivos de los sistemas abiertos. Es compatible con los
estndares de sistemas abiertos basados en UNIX como, por ejemplo,
POSIX y XPG. Al igual que el sistema de archivos raz, este sistema de
archivos se beneficia del soporte de directorios y archivos continuos que
proporciona el sistema de archivos integrado. Adems, dispone de soporte
para nombres de objeto sensibles a maysculas y minsculas.
QOPT
El sistema de archivos ptico. Da acceso a los datos continuos almacenados
en soportes pticos.
QSYS.LIB
El sistema de archivos de biblioteca. Da soporte a la estructura de
bibliotecas del AS/400. Este sistema de archivos proporciona acceso a los
archivos de base de datos y a todos los dems tipos de objeto del AS/400
que gestiona el soporte de bibliotecas.
raz El sistema de archivos /. Este sistema de archivos obtiene el mximo
provecho del soporte de archivos continuos y de la estructura jerrquica de
directorios del sistema de archivos integrado. Tiene las caractersticas de
los sistemas de archivos del DOS y del OS/2.
UDFS El sistema de archivos definido por el usuario. Reside en la agrupacin de
almacenamiento auxiliar (ASP) elegida por el usuario, que es quien crea y
gestiona este sistema de archivos.
Puede interactuar con cualquiera de los sistemas de archivos a travs de una
interfaz comn. Esta interfaz est optimizada para entrada/salida de datos
continuos, en contraste con la entrada/salida de registro proporcionada mediante
las interfaces de gestin de datos. Los mandatos, mens y pantallas, e interfaces de
programacin de aplicaciones (API) suministradas permiten la interaccin con los
sistemas de archivos a travs de esta interfaz comn.
Para obtener ms informacin, consulte los temas y publicaciones siguientes:
Clientes UNIX,
AS/400 o PC
Clientes
PC
Usuarios AS/400
Aplicaciones
Mens/mandatos
del sistema de
Sistema de
archivos
"raz"
Sistema de
archivos
QOpenSys
Sistema de
archivos
QSYS.LIB
Servidor
de
Servidor
archivos
NFS
OS/400
Servidor
OS/2
Warp
Servidor
Novell
NetWare
Servidor PC
integrado
(FSIOP)
Sistema de
archivos
QDLS
Figura 4. Sistemas de archivos, servidores de archivos y la interfaz del sistema de archivos integrado
Figura 5. Los sistemas de archivos y los objetos son ramas del rbol de directorios del sistema de archivos integrado
Para comodidad de los usuarios, puede utilizarse la barra inclinada invertida (\)
en lugar de la barra inclinada en los mandatos del sistema de archivos integrado.
Existen dos modos de indicar un nombre de va de acceso:
v Un nombre de va de acceso absoluto empieza en el nivel superior, o directorio
raz (que se identifica por el carcter / ). Por ejemplo, piense en la va de
acceso siguiente desde el directorio / hasta el archivo denominado Prez.
Directorio "raz"
Depto2
Directorio
Fotos
Directorio
Prez
Archivo
RV3N067-2
10
Directorio
Dir
2
r1
Di
Directorio
XXXXXX
XXXXXX
XXXXXX
Directorio
Estadsticas
XXXXXX
XXXXXX
o1
hiv
Arc
Arc
hiv
o1
XXXXXX
Archivo
.......
.......
.......
os
Dat
RV3N066-1
Los enlaces fijos se pueden eliminar sin que afecte a la existencia de un objeto,
siempre que exista, como mnimo, un enlace fijo disponible con el objeto. Cuando
se elimina el ltimo enlace fijo, el objeto se elimina del sistema, excepto si una
aplicacin tiene abierto el objeto. Cada aplicacin que tiene abierto el objeto puede
continuar utilizndolo hasta que la aplicacin cierre el objeto. Cuando la ltima
aplicacin que utiliza el objeto lo cierra, el objeto se elimina del sistema. Un objeto
no se puede abrir despus de haberse eliminado el ltimo enlace fijo.
El concepto de enlace fijo tambin se puede aplicar al sistema de archivos de
biblioteca (QSYS.LIB) y al sistema de archivos de servicios de biblioteca de
documentos (QDLS), pero con una restriccin. Una biblioteca, en efecto, tiene un
enlace fijo con cada objeto de la biblioteca. Del mismo modo, una carpeta tiene un
enlace fijo con cada documento de la carpeta. No obstante, no se permiten los
enlaces fijos mltiples con el mismo objeto en el sistema de archivos QSYS.LIB ni
QDLS.
Un enlace fijo no puede cruzar sistemas de archivos. Por ejemplo, un directorio del
sistema de archivos QOpenSys no puede tener un enlace fijo con un objeto del
sistema de archivos QSYS.LIB ni con un documento del sistema de archivos QDLS.
11
es
nt
ie
Cl
Directorio
Re
gi
st
ro
s
Cuentas
Directorio
Estado
Directorio
/Registros/Cuentas
Archivo
n
ume
Res
RV3N068-1
12
Pgina de
cdigos
.........
.........
.........
.......#
.........
UCS2 nivel 1
.........
. . . . . .#.
.........
.........
.........
.........
.........
.........
Pgina de
cdigos
.........
.........
.........
#. . . . . . . .
.........
RV3N141-0
Este soporte facilita la interaccin con un AS/400 desde dispositivos que utilizan
pginas de cdigos diferentes. Por ejemplo, los usuarios de PC pueden acceder a
Captulo 2. Conceptos del sistema de archivos integrado
13
14
15
v
v
v
v
v
v
v
v
16
Mandato
Descripcin
ADDLNK
ADDMFS
CHGAUD
CHGAUT
CHGCURDIR
Alias
CD, CHDIR
Descripcin
Alias
CHGNFSEXP
EXPORTFS
CHGOWN
CHGPGP
CHKIN
CHKOUT
CPY
CPYFRMSTMF
CPYTOSTMF
CRTDIR
CRTUDFS
CVTRPCSRC
DLTUDFS
DSPAUT
DSPCURDIR
DSPLNK
DSPF
DSPMFSINF
DSPUDFS
EDTF
ENDNFSSVR
COPY
MD, MKDIR
RPCGEN
STATFS
17
Descripcin
Alias
ENDRPCBIND
MOV
RLSIFSLCK
RMVDIR
RD, RMDIR
RMVLNK
DEL, ERASE
RMVMFS
UNMOUNT
RNM
REN
RPCBIND
RST
RTVCURDIR
SAV
STRNFSSVR
WRKAUT
WRKLNK
WRKOBJOWN1
WRKOBJPGP1
MOVE
18
o
'Dir1\Dir2\Dir3\ArchUsr'
19
v Una tilde (x) seguida de una barra inclinada (o barra inclinada invertida) al
principio de un nombre de va de acceso significa que la va de acceso empieza
en el directorio inicial del usuario que entra el mandato; por ejemplo:
'x/DirUsr/ObjUsr'
v Una tilde (x) seguida de un nombre de usuario y despus una barra inclinada (o
barra inclinada invertida) al principio del nombre de va de acceso significa que
la va de acceso empieza en el directorio inicial del usuario identificado por el
nombre de usuario; por ejemplo:
'xnombre-usuario/DirUsr/ObjUsr'
El ejemplo siguiente busca los objetos cuyos nombres empiezan con d seguida de
cualquier carcter y terminan con txt:
'/Dir1/Dir2/Dir3/d?txt'
Para evitar la confusin que podra producirse con los valores especiales del
AS/400, los nombres de va de acceso no pueden comenzar con un nico
carcter de asterisco (*). Para llevar a cabo una comparacin de patrones al
principio de un nombre de va de acceso, utilice dos asteriscos (**); por ejemplo:
'**.file'
Nota: Este caso slo se aplica a los nombres de va de acceso relativo donde no
hay otros caracteres antes del asterisco (*).
v Cuando se trabaja con objetos del sistema de archivos QSYS.LIB, los nombres de
componentes deben tener el formato nombre.tipo-objeto; por ejemplo:
'/QSYS.LIB/PAY.LIB/TAX.FILE'
o
/Dir1/Dir/A*Antonio
20
21
de usuario sea el directorio del usuario en /home, por ejemplo /home/pedro. Para
obtener ms informacin, consulte el apartado Directorio actual y directorio
inicial en el sistema de archivos integrado en la pgina 8.
v /etc
El directorio /etc almacena archivos de administracin, de configuracin y otros
archivos del sistema.
v /usr
El directorio /usr incluye subdirectorios que contienen informacin utilizada por
el sistema. Generalmente, los archivos de /usr no cambian a menudo.
v /usr/bin
El directorio /usr/bin contiene los programas de utilidad estndares.
v /usr/lib
El directorio /usr/lib contiene los programas compartidos (soporte en tiempo
de ejecucin).
v /usr/sbin
El directorio /usr/sbin contiene los programas proporcionados por el sistema.
22
Figura 10. Utilizacin de arrastrar y soltar para mover un archivo del AS/400 al cliente PC
Todos los objetos que se copian entre sistemas AS/400 y PC utilizando la interfaz
de Windows 95/98/NT pueden convertirse automticamente entre EBCDIC y
ASCII. EBCDIC es el cdigo de intercambio decimal ampliado codificado en
Captulo 3. Acceso al sistema de archivos integrado
23
24
En Client Access, el nivel superior, el nivel raz (/), representa la totalidad del
sistema AS/400. Cada directorio del siguiente nivel por debajo del nivel / aparece
como directorio de la unidad de AS/400. Este nivel incluye los directorios que
representan los sistemas de archivos (tales como QSYS.LIB y QDLS), as como todos
los subdirectorios de primer nivel del sistema de archivos raz (/) (como, por
ejemplo, home y tmp).
En NetServer, el administrador del sistema elije los directorios que se compartirn
en la red. Estos directorios aparecern como el primer nivel bajo el nombre del
sistema. Por ejemplo, si el administrador comparte el directorio /home/carlos
con el nombre dircarlos, un usuario podr acceder a dicho directorio desde el PC
utilizando el nombre \\QAS400X\DIRCARLOS.
El sistema de archivos raz proporciona un rendimiento mucho mejor en el servicio
de archivos PC que otros sistemas de archivos AS/400. A los administradores les
puede interesar la migracin de archivos al sistema de archivos raz. Los archivos
de PC que estn en QDLS son buenos candidatos para la migracin. La mayora de
aplicaciones PC deben ser capaces de continuar trabajando con archivos PC que se
trasladan desde QDLS a otros sistemas de archivos.
v
v
v
v
v
Sistema
Sistema
Sistema
Sistema
Sistema
25
|
|
|
|
|
|
|
26
27
28
29
30
31
32
Descripcin
access()
chdir()
chmod()
chown()
close()
closedir()
Cerrar directorio
creat()
creat64()
DosSetFileLocks ()
DosSetFileLocks64()
dup()
dup2()
fchmod()
fchown()
fcntl()
fpathconf()
fstat()
fstat64()
fstatvfs()
fstatvfs64()
fsync()
ftruncate()
Truncar archivo
ftruncate64()
getcwd()
getegid()
geteuid()
getgid()
33
Descripcin
getgrgid()
getgrnam()
getgroups()
getpwnam()
getpwuid()
getuid()
givedescriptor()
ioctl()
link()
lseek()
lseek64()
lstat()
lstat64()
mkdir()
Crear directorio
open()
Abrir archivo
open64()
opendir()
Abrir directorio
pathconf()
34
Qp0lFLOP()
Qp0lGetAttr()
Qp0lGetPathFromFileID()
Qp0lOpen()
Qp0lProcessSubtree()
Qp0lRenameKeep()
Qp0lRenameUnlink()
Qp0lSaveStgFree()
Qp0lSetAttr()
Qp0lUnlink()
QZNFRTVE()
read()
Leer en archivo
Descripcin
readv()
readdir()
readdir_r()
readlink()
rename()
rewinddir()
rmdir()
Eliminar directorio
select()
DosSetRelMaxFH()
stat()
stat64()
statvfs()
statvfs64()
symlink()
sysconf()
takedescriptor()
umask()
unlink()
utime()
write()
Grabar en archivo
writev()
Si desea obtener detalles sobre cada funcin, puede consultar la categora API tipo
UNIX del tema API OS/400 del AS/400 Information Center. Si desea obtener una
discusin sobre la conversin de datos utilizando la funcin open(), puede
consultar el tema Conversin de datos en el sistema de archivos integrado en la
pgina 43.
Para obtener informacin sobre la propiedad de objetos, el grupo primario, el
nmero de ID de usuario (UID) y el nmero de ID de grupo (GID), consulte la
publicacin Security - Reference, SC41-5302-04.
Algunas de estas funciones se utilizan tambin para sockets OS/400 (consulte el
apartado Soporte de sockets en el sistema de archivos integrado en la pgina 41).
Para conocer las restricciones sobre el uso de estas funciones en sistemas de
archivos concretos, consulte el Sistemas de archivos en el sistema de archivos
integrado en la pgina 4.
35
Programas de aplicacin
Funciones ILE C/400
(fopen, fclose, ...)
Figura 11. Las funciones ILE C/400 utilizan las funciones de E/S continua del sistema de
archivos integrado
36
Tenga en cuenta que este caso slo se aplica a los nombres de va de acceso
relativa donde no hay otros caracteres antes del asterisco (*).
v Cuando se trabaja con objetos del sistema de archivos QSYS.LIB, los nombres de
componentes deben tener el formato nombre.tipo-objeto; por ejemplo:
/QSYS.LIB/PAYROLL.LIB/PAY.FILE
37
38
Sistema
ssize_t read(int files, . . .)
Descriptor
de archivo
Descripcin de
archivo abierto
Desplazamiento
xxx
Estado
xxxx
Modalidades
de acceso
xxxxxx
RV3N077-1
Si se utiliza una funcin de E/S continua de ILE C/400 con el sistema de archivos
integrado, el soporte de tiempo de ejecucin de ILE C/400 convierte el puntero de
archivo en un descriptor de archivo.
Cuando se utilizan los sistemas de archivos raz (/), QOpenSys o el definido por
el usuario, se puede pasar el acceso a una descripcin de archivo abierto de un
trabajo a otro, con lo que se permite al trabajo acceder al archivo. Esta operacin se
efecta utilizando la funcin givedescriptor() o takedescriptor() para pasar el
descriptor de archivo entre trabajos. Si desea obtener una descripcin de estas
funciones, puede consultar la publicacin Sockets Programming o el captulo API
de Sockets de la publicacin System API Programming .
39
40
Elemento
Enlace fijo
Enlace simblico
Resolucin de nombre
Ms lento. Un enlace
simblico contiene un
nombre de va de acceso al
objeto, que debe resolverse
para localizar el objeto.
Existencia de objeto
Opcional. Un enlace
simblico se puede crear
cuando el objeto al que hace
referencia no existe.
Supresin de objeto
mbito
41
42
NombreEmpresaNombreProducto.Nombre_Atributo
43
44
/ (raz)
QOpenSys
QSYS.LIB
QDLS
QNTC
Continuo
Continuo
12
Tipo de archivo
Continuo
Continuo
Registro
No
No
No
No
No
Media
No
No
2
Media
No
2
No
Baja
Baja
No
No
255 cars.
10.6 cars.
16MB
55 cars.
2 Gb
2 Gb
Variable
Sin lmite
32 767
Media
8.3 cars.
No
7
255 cars.
82 cars.
255 cars.
32 Kb
64KB
32
127
32 767
No
No
No
No
No
No
No
No
No
10
Sin lmite
10
11
13
45
/ (raz)
QOpenSys
QSYS.LIB
QDLS
QNTC
Notas:
1. El FSIOP es un hardware utilizado por el LAN Server.
2. Cuando se accede a travs del servidor de archivos OS/400.
3. Cuando se accede a travs de un PC cliente de LAN Server. El acceso utilizando las API del AS/400 es
comparativamente lento.
4. Consulte el apartado Sistema de archivos de biblioteca (QSYS.LIB) en la pgina 51 para obtener informacin
ms detallada.
5. Consulte el apartado Sistema de archivos de servicios de biblioteca de documentos (QDLS) en la pgina 54
para obtener informacin ms detallada.
6. Un mximo de 10 caracteres en el nombre de objeto y de 6 caracteres en el tipo de objeto. Consulte el apartado
Sistema de archivos de biblioteca (QSYS.LIB) en la pgina 51 para conocer ms detalles.
7. Un mximo de 8 caracteres en el nombre y de 1 a 3 caracteres en la extensin de tipo de archivo (si procede).
Consulte el apartado Sistema de archivos de servicios de biblioteca de documentos (QDLS) en la pgina 54
para obtener informacin ms detallada.
8. Suponiendo un nombre de va de acceso absoluto que empiece con / seguido del nombre del sistema de
archivos (como, por ejemplo, /QDLS...).
9. El sistema de archivos QSYS.LIB tiene soporte para tres atributos ampliados predefinidos: .SUBJECT,
.CODEPAGE y .TYPE. La longitud mxima queda determinada por la longitud combinada de estos tres
atributos ampliados.
10. En la prctica, los niveles de directorios estn limitados por los lmites de espacio del programa y del sistema.
11. Excepto un directorio, que slo puede tener un enlace con otro directorio.
12. Los espacios de usuario de QSYS.LIB dan soporte a la entrada y salida de archivo continuo.
13. Las API del sistema de archivos integrado admiten la ejecucin en hebras cuando la operacin se dirige a un
objeto que reside en un sistema de archivos que admite ejecucin en hebras. Si estas API estn operando sobre
objetos en sistemas de archivos que no admiten la ejecucin en hebras cuando en el trabajo se ejecutan
mltiples hebras, la API fallar.
Abreviaturas
cars. = caracteres
B = bytes
KB = kilobytes
MB = megabytes
GB = gigabytes
QFileSvr.400
UDFS
NFS
QNetWare
No
Tipo de archivo
Continuo
Continuo
Continuo
Continuo
Continuo
No
No
No
No
No
No
No
No
Baja
46
QOPT
Media
Media
Alta
11
QOPT
QFileSvr.400
No
No
Variable
UDFS
QNetWare
Variable
No
255 cars.
Variable
255 cars.
16MB
Sin lmite
NFS
12
Longitud mxima de
nombre de va de acceso
294 cars.
Sin lmite
8 Mb
Niveles mximos de la
jerarqua de directorios
dentro del sistema de
archivos
Sin lmite
Nmero mximo de
enlaces por objeto 7
32 767
Variable
Soporte de enlaces
simblicos
No
No
No
Objeto/archivo puede
tener propietario
No
No
No
No
No
Admite ejecucin en
hebras 14
No
No
2GB
Sin lmite
10
Sin lmite
13
255 cars.
64KB
Sin lmite
100
No
No
47
QOPT
QFileSvr.400
UDFS
NFS
QNetWare
Notas:
1. El FSIOP es un hardware utilizado por el LAN Server.
2. Depende de a qu sistema de archivos remoto se est accediendo.
3. Cuando se accede a travs del servidor de archivos OS/400
4. Consulte el apartado Sistema de archivos ptico (QOPT) en la pgina 56 para obtener informacin ms
detallada.
5. Suponiendo que se trate de un nombre de va de acceso absoluto que empiece por / seguido del nombre del
sistema de archivos
6. El sistema de archivos QFileSvr.400 no devuelve atributos ampliados aunque el sistema de archivos al que se
acceda soporte atributos ampliados.
7. En la prctica, los niveles de directorios estn limitados por los lmites de espacio del programa y del sistema.
8. Excepto un directorio, que slo puede tener un enlace con otro directorio.
9. El sistema de archivos al que se accede puede que soporte propietarios de objetos.
10. La longitud mxima de los atributos ampliados de UDFS en s no puede ser superior a 40 bytes.
11. Si se accede a travs de un PC cliente Novell NetWare. El acceso utilizando las API del AS/400 es
comparativamente lento.
12. La sensibilidad a las maysculas y las minsculas puede especificarse al crear un UDFS. Si se utiliza el
parmetro *MIXED cuando se crea un UDFS, permitir una bsqueda que distingue maysculas de
minsculas.
13. Los objetos de los servicios de directorio NetWare tienen un mximo de 255 caracteres. Los archivos y
directorios estn limitados al formato DOS 8.3.
14. Las API del sistema de archivos integrado admiten la ejecucin en hebras cuando se accede a ellas en un
proceso con posibilidad multihebra. El sistema de archivos no permite el acceso a los sistemas de archivos que
no admiten la ejecucin en hebras.
Abreviaturas
cars. = caracteres
B = bytes
KB = kilobytes
MB = megabytes
GB = gigabytes
48
Todas las API del lenguaje C que se listan en el apartado API del sistema de
archivos integrado en la pgina 33 pueden operar en el sistema de archivos raz
(/) de un modo seguro en ejecucin multihebra.
49
v
v
v
v
Soporta
Soporta
Soporta
Soporta
Utilizacin de QOpenSys
Al QOpenSys puede accederse a travs de la interfaz del sistema de archivos
integrado utilizando los mandatos del servidor de archivos OS/400 o sistema de
archivos integrado, las pantallas de usuario y las API del lenguaje C.
50
51
52
El nombre del objeto y el tipo del objeto se separan con un punto (.). Los objetos
de una biblioteca pueden tener el mismo nombre si tienen tipos de objeto
distintos, por lo que el tipo de objeto debe especificarse para identificar
exclusivamente al objeto.
v El nombre de objeto de cada componente puede tener una longitud mxima de
10 caracteres y el tipo de objeto, 6 caracteres.
v La jerarqua de directorios dentro de QSYS.LIB puede tener una extensin de
dos o tres niveles (dos o tres componentes en el nombre de va de acceso) en
funcin del tipo de objeto al que se accede. Si el objeto es un archivo de base de
datos, la jerarqua puede contener tres niveles (biblioteca, archivo, miembro); de
lo contrario, slo puede haber dos niveles (biblioteca, objeto). La combinacin de
la longitud de cada nombre de componente y el nmero de niveles de directorio
determina la longitud mxima del nombre de la va de acceso.
Si / y QSYS.LIB se incluyen como los dos primeros niveles, la jerarqua de
directorios de QSYS.LIB puede tener una extensin mxima de cinco niveles.
v Los caracteres de los nombres se convierten a la pgina de cdigos 37 al
almacenarse los nombres. Los nombres entre comillas, en cambio, se almacenan
utilizando la pgina de cdigos del trabajo.
Para obtener informacin acerca de las pginas de cdigos, consulte la
publicacinNational Language Support .
53
54
55
56
Tenga en cuenta que las reglas de denominacin para utilizar las API del HFS son
distintas de las reglas de denominacin para las API que utilizan la interfaz del
sistema de archivos integrado.
Puede encontrar detalles acerca de las API de HFS en la publicacin System API
Reference o en la publicacin Optical Support, SC41-5310-02 .
57
v CPY
OBJ debe ser un archivo. No puede ser un volumen ni un directorio.
v CRTDIR
DTAAUT debe tener el valor *INDIR.
OBJAUT debe tener el valor *INDIR.
CRTOBJAUD debe tener el valor *SYSVAL.
v MOV
OBJ debe ser un archivo. No puede ser un volumen ni un directorio.
v RMVDIR
RMVLNK debe tener el valor *NO
v RNM
OBJ debe ser un archivo o un volumen. No puede ser un directorio.
v Los siguientes mandatos del sistema de archivos integrado no estn soportados
en el sistema de archivos QOPT:
58
ADDLNK
CHGAUD
CHGOWN
CHGPGP
CHKIN
CHKOUT
RST
SAV
WRKOBJOWN
WRKOBJPGP
Las mismas restricciones son aplicables a las pantallas de usuario descritas en el
apartado Realizacin de operaciones en el sistema de archivos integrado desde el
AS/400 en la pgina 15.
59
60
61
62
DSPAUT
RST
SAV
WRKOBJOWN
WRKOBJPGP
Las mismas restricciones son aplicables a las pantallas de usuario descritas en el
apartado Realizacin de operaciones en el sistema de archivos integrado desde el
AS/400 en la pgina 15.
63
64
Descripcin
ADDMFS
CRTUDFS
DLTUDFS
DSPMFSINF
DSPUDFS
MOUNT
RMVMFS
65
Descripcin
UNMOUNT
Nota: Para que los mandatos del sistema de archivos integrado puedan realizar
operaciones sobre los objetos almacenados en un UDFS, primero debe
montar ste.
66
67
directorio raz (/) del cliente. Aunque el sistema de archivos montado parece ser
una ampliacin del directorio local, en realidad funcionar y actuar como el
sistema de archivos QDLS.
Tener presente esta relacin de los sistemas de archivos montados a travs de NFS
es importante para procesar las peticiones de forma local y mediante la conexin
del servidor. Que un mandato se procese correctamente a nivel local no significa
que vaya a funcionar en el directorio montado desde el servidor. Cada directorio
montado en el cliente tendr las propiedades y las caractersticas del sistema de
archivos del servidor.
68
Descripcin
ADDMFS
CHGNFSEXP
DSPMFSINF
ENDNFSSVR
EXPORTFS
MOUNT
RLSIFSLCK
RMVMFS
STRNFSSVR
UNMOUNT
Nota: Para poder utilizar los mandatos en un sistema de archivos de red, primero
debe montarse ste.
69
Adems:
v Proporciona acceso a los objetos de los Servicios de Directorio NetWare (NDS).
v Soporta datos almacenados en archivos continuos.
v Proporciona montaje dinmico de Sistemas de Archivos NetWare en el espacio
de nombres local.
Nota: El sistema de archivos QNetWare est disponible slo si en el sistema est
instalada la integracin mejorada NetWare para AS/400, opcin 25 del
BOSS. Despus de realizar la siguiente IPL una vez efectuada la instalacin,
el directorio /QNetWare y sus subdirectorios aparecen como parte de la
estructura de directorios del sistema de archivos integrado. .
Las extensiones .TRE, .C, .O, .OU y .CN se utilizan para representar rboles de
NDS, pases, organizaciones, unidades organizativas y nombres comunes,
respectivamente. Si a un volumen de Novell NetWare se accede a travs de la
va de acceso de NDS por medio de un objeto volumen o del alias de un objeto
volumen, el directorio raz del mismo se monta tambin de forma automtica en
el objeto de NDS.
70
71
CHKOUT
WRKOBJOWN
WRKOBJPGP
Adems de los mandatos anteriores, los siguientes no pueden utilizarse en
volmenes, servidores ni objetos de NDS:
CPYFRMSTMF
CPYTOSTMF
CRTDIR
CHGOWN
72
El sistema de archivos QNTC forma parte del sistema operativo OS/400 base. Para
utilizar el sistema de archivos QNTC, los Programas de Utilidad de Conectividad
TCP/IP para el AS/400 han de estar instalados (su nmero de pieza es 5769-TC1).
No es necesario que est instalada la Integracin del AS/400 con Windows NT
Server, opcin 29 del sistema operativo, para acceder a /QNTC.
73
74
75
76
Utiliza la funcin open() para abrir el archivo slo para lectura. El enlace
creado en (8) posibilita el acceso al archivo.
10
Utiliza la funcin read() para leer una serie de bytes del archivo. El
descriptor de archivo proporcionado en la operacin de apertura (9)
identifica al archivo.
11
12
13
14
15
77
#include
#include
#include
#include
#include
#define
#define
#define
#define
#define
#define
char
char
char
char
int
int
int
uid_t
<stdlib.h>
<stdio.h>
<fcntl.h>
<unistd.h>
<sys/types.h>
BUFFER_SIZE
NEW_DIRECTORY
TEST_FILE
TEST_DATA
USER_ID
PARENT_DIRECTORY
2048
"dirtest"
"test.file"
"Hola todos!"
"user_id_"
".."
InitialFile[BUFFER_SIZE];
LinkName[BUFFER_SIZE];
InitialDirectory[BUFFER_SIZE] = ".";
Buffer[32];
FilDes = -1;
BytesRead;
BytesWritten;
UserID;
78
close(FilDes);
unlink(LinkName);
chdir(PARENT_DIRECTORY);
rmdir(NEW_DIRECTORY);
unlink(TEST_FILE);
break;
case 10:
printf("No se pudo cerrar el enlace %s.\n",LinkName);
close(FilDes);
unlink(LinkName);
chdir(PARENT_DIRECTORY);
rmdir(NEW_DIRECTORY);
unlink(TEST_FILE);
break;
case 11:
printf("No se pudo deshacer el enlace %s.\n",LinkName);
unlink(LinkName);
chdir(PARENT_DIRECTORY);
rmdir(NEW_DIRECTORY);
unlink(TEST_FILE);
break;
case 12:
printf("No se pudo ir al directorio %s.\n",PARENT_DIRECTORY);
chdir(PARENT_DIRECTORY);
rmdir(NEW_DIRECTORY);
unlink(TEST_FILE);
break;
case 13:
printf("No se pudo eliminar el directorio %s.\n",NEW_DIRECTORY);
rmdir(NEW_DIRECTORY);
unlink(TEST_FILE);
break;
case 14:
printf("No se pudo desenlazar el archivo %s.\n",TEST_FILE);
unlink(TEST_FILE);
break;
default:
break;
}
printf("El programa finaliz con Error.\n"\
"Pueden no estar eliminados todos los archivos y directorios de prueba.\n");}
int main (){
1
/* Obtener e imprimir el ID de usuario real con la funcin getuid(). */
UserID = getuid();
printf("El ID de usuario real es %u. \n",UserID);
2
/* Obtener el directorio de trabajo actual y almacenarlo en InitialDirectory. */
if ( NULL == getcwd(InitialDirectory,BUFFER_SIZE) )
{
perror("Error getcwd");
CleanUpOnError(1);
return 0;
}
printf("El directorio de trabajo actual es %s. \n",InitialDirectory);
3
/* Crear el archivo TEST_FILE para grabar, si no existe.
Otorgar al propietario autorizacin de lectura, grabacin y ejecucin. */
FilDes = open(TEST_FILE, O_WRONLY | O_CREAT | O_EXCL, S_IRWXU);
if ( -1 == FilDes )
{
perror("Error open");
CleanUpOnError(2);
return 0;
}
printf("Creado %s en directorio %s.\n",TEST_FILE,InitialDirectory);
4
/* Grabar TEST_DATA en TEST_FILE va FilDes */
BytesWritten = write(FilDes,TEST_DATA,strlen(TEST_DATA));
Apndice A. Programa de ejemplo con funciones C del sistema de archivos integrado
79
if ( -1 == BytesWritten )
{
perror("Error write");
CleanUpOnError(3);
return 0;
}
printf("Grabado %s en archivo %s.\n",TEST_DATA,TEST_FILE);
5
/* Cerrar TEST_FILE va FilDes */
if ( -1 == close(FilDes) )
{
perror("Error close");
CleanUpOnError(4);
return 0;
}
FilDes = -1;
printf("Archivo %s cerrado.\n",TEST_FILE);
6
/* Crear un nuevo directorio en el directorio de trabajo actual y
otorgar al propietario autorizacin de lectura, grabacin y ejecucin */
if ( -1 == mkdir(NEW_DIRECTORY, S_IRWXU) )
{
perror("Error mkdir");
CleanUpOnError(5);
return 0;
}
printf("Directorio %s creado en directorio
%s.\n",NEW_DIRECTORY,InitialDirectory);
7
/* Cambiar el directorio de trabajo actual por el
directorio NEW_DIRECTORY recin creado. */
if ( -1 == chdir(NEW_DIRECTORY) )
{
perror("Error chdir");
CleanUpOnError(6);
return 0;
}
printf("Se ha pasado al directorio
%s/%s.\n",InitialDirectory,NEW_DIRECTORY);
/* Copiar PARENT_DIRECTORY en InitialFile y
aadir "/" y TEST_FILE a InitialFile. */
strcpy(InitialFile,PARENT_DIRECTORY);
strcat(InitialFile,"/");
strcat(InitialFile,TEST_FILE);
/* Copiar USER_ID en LinkName despus aadir el
ID usuario como una serie a LinkName. */
strcpy(LinkName, USER_ID);
sprintf(Buffer, "%d\0", (int)UserID);
strcat(LinkName, Buffer);
8
/* Crear un enlace con el nombre de InitialFile con LinkName. */
if ( -1 == link(InitialFile,LinkName) )
{
perror("Error link");
CleanUpOnError(7);
return 0;
}
printf("Creado un enlace %s con %s.\n",LinkName,InitialFile);
9
/* Abrir el archivo LinkName slo para lectura. */
if ( -1 == (FilDes = open(LinkName,O_RDONLY)) )
{
perror("Error open");
CleanUpOnError(8);
return 0;
}
printf("Abierto %s para lectura.\n",LinkName);
10
/* Leer en archivo LinkName, va FilDes, en Buffer. */
BytesRead = read(FilDes,Buffer,sizeof(Buffer));
if ( -1 == BytesRead )
{
perror("Error read");
CleanUpOnError(9);
80
return 0;
}
printf("%s ledo en %s.\n",Buffer,LinkName);
if ( BytesRead != BytesWritten )
{
printf("AVISO: el nmero de bytes ledos no "\
"es igual al nmero de bytes grabados.\n");
11
/* Cerrar el archivo LinkName va FilDes. */
if ( -1 == close(FilDes) )
{
perror("Error close");
CleanUpOnError(10);
return 0;
}
FilDes = -1;
printf("Cerrado %s.\n",LinkName);
12
/* Desenlazar el enlace LinkName con InitialFile. */
if ( -1 == unlink(LinkName) )
{
perror("Error unlink");
CleanUpOnError(11);
return 0;
}
printf("%s est desenlazado.\n",LinkName);
13
/* Volver a cambiar el directorio de trabajo actual
por el directorio inicial. */
if ( -1 == chdir(PARENT_DIRECTORY) )
{
perror("Error chdir");
CleanUpOnError(12);
return 0;
}
printf("pasando del directorio al %s.\n",InitialDirectory);
14
/* Eliminar el directorio NEW_DIRECTORY */
if ( -1 == rmdir(NEW_DIRECTORY) )
{
perror("Error rmdir");
CleanUpOnError(13);
return 0;
}
printf("Eliminando directorio %s.\n",NEW_DIRECTORY);
15
/* Desenlazar el archivo TEST_FILE */
if ( -1 == unlink(TEST_FILE) )
{
perror("Error unlink");
CleanUpOnError(14);
return 0;
}
printf("Desenlazando archivo %s.\n",TEST_FILE);
printf("Programa terminado satisfactoriamente.\n");
return 0;}
81
82
Selecciones de red
Las API siguientes proporcionan los medios para elegir el transporte en el que una
aplicacin debe ejecutarse.
Estas API requieren que el archivo *STMF /etc/netconfig exista en el sistema. Si el
archivo netconfig no existiese en el directorio /etc, el usuario debe copiarlo del
directorio /QIBM/ProdData/OS400/RPC. El archivo netconfig se encuentra
siempre en el directorio QIBM/ProdData/OS400/RPC.
API
Descripcin
endnetconfig()
freenetconfigent()
getnetconfig()
getnetconfigent()
setnetconfig()
83
Descripcin
netdir_free()
netdir_getbyaddr()
netdir_getbyname()
netdir_options()
netdir_sperror()
taddr2uaddr()
uaddr2taddr()
84
API
Descripcin
xdr_array()
xdr_bool()
xdr_bytes()
xdr_char()
API
Descripcin
xdr_double()
xdr_double_char()
xdr_enum()
xdr_free()
xdr_float()
xdr_int()
xdr_long()
xdr_netobj()
xdr_opaque()
xdr_pointer()
xdr_reference()
xdr_short()
xdr_string()
xdr_u_char()
xdr_u_int()
85
API
Descripcin
xdr_u_long()
xdr_u_short()
xdr_union()
xdr_vector()
xdr_void()
xdr_wrapstring()
Autenticacin
Las API siguientes proporcionan autenticacin a las aplicaciones con Llamada de
procedimiento remoto independiente del transporte (TI-RPC).
API
Descripcin
auth_destroy()
authnone_create()
authsys_create()
86
API
Descripcin
rpc_call()
rpc_reg()
Descripcin
clnt_call()
clnt_control()
clnt_create()
clnt_destroy()
svc_create()
svc_destroy()
Descripcin
clnt_tp_create()
svc_tp_create()
Descripcin
clnt_tli_create()
rpcb_getaddr()
rpcb_set()
rpcb_unset()
svc_reg()
svc_tli_create()
svc_unreg()
87
88
API
Descripcin
clnt_freeres()
clnt_geterr()
svc_freeargs()
svc_getargs()
svc_getrpccaller()
svc_run()
svc_sendreply()
svcerr_decode()
svcerr_noproc()
svcerr_systemerr()
89
90
Bibliografa
Esta bibliografa lista la informacin de AS/400
que contiene informacin previa o ms detallada
de la informacin que se expone en este manual.
v APPC Programming, SC41-5443-00
Este manual describe el soporte APPC
(comunicaciones avanzadas programa a
programa) para el sistema AS/400. Constituye
una gua para realizar el desarrollo de
programas de aplicacin que utilizan APPC y
para la definicin del entorno de
comunicaciones para APPC.
v CL Programming, SC41-5721-03
Esta publicacin trata las funciones y conceptos
del OS/400 que son relevantes en
programacin.
v El tema Lenguaje de control de la categora
Programacin del AS/400 Information Center
proporciona una descripcin del lenguaje de
control (CL) del AS/400 y de sus mandatos.
Cada descripcin de mandato incluye un
diagrama de sintaxis, parmetros, valores por
omisin, palabras clave y un ejemplo.
v ILE Concepts, SC41-5606-04
En esta publicacin se describen los conceptos
y la terminologa del Entorno de Lenguajes
Integrado del sistema operativo OS/400.
v ILE C for AS/400 Programmers Guide,
SC09-2712-01
Esta publicacin proporciona la informacin
necesaria para disear, editar, compilar, ejecutar
y depurar programas ILE C/400 en el AS/400.
v ILE C for AS/400 Run-Time Library Reference,
SC09-2711-01
Esta publicacin proporciona informacin
acerca de la estructura de los programas ILE
C/400 y contiene detalles sobre las funciones
de biblioteca y los archivos de incluir
(cabecera).
v International Application Development,
SC41-5603-01
Este manual proporciona informacin relativa a
valores de CCSID, esquemas de codificacin,
pginas de cdigos y juegos de caracteres
grficos.
v Gestin de OfiVisin/400, SH10-9074-00
(SH21-0699-00)
91
Bibliografa
v System API Programming, SC41-5800-00
Esta publicacin proporciona informacin
acerca de la utilizacin de las API de OS/400.
v El tema API del OS/400 de la categora
Programacin del AS/400 Information Center
proporciona una descripcin de cada una de las
API del OS/400, incluidas las API del sistema
de archivos integrado.
v Gestin de trabajos, SC10-3124-03 (SC41-5306-03)
Esta publicacin describe conceptos relativos a
la gestin de trabajos.
92
ndice
A
API
ILE C/400 36
programa de ejemplo 77
reglas de nombres de vas de
acceso 36
sistema de archivos integrado 33
utilizacin en programas C 29, 32
archivo 77
funciones (API) 33
mens y pantallas 15
modalidades de abrir 43
transferir 25
archivo continuo
qu es? 3
comparacin con archivo orientado a
registros 3
copiar en/de archivo de base de
datos 29
en programa de ejemplo 77
indicando utilizacin en ILE
C/400 36
por qu utilizarlo 3
utilizacin en programas 29
ventajas 2
archivo de base de datos
comparacin con archivo continuo 3
copiar en/de archivo continuo 29
crear a partir de archivo continuo 29
atributo ampliado CODEPAGE 42
atributo ampliado SUBJECT 42
atributo ampliado TYPE 42
atributos ampliados
qu son? 13
continuidad a travs de idiomas
nacionales 13, 41
directrices de denominacin 42
manejo 42
tipos 42
autorizacin
en programa de ejemplo 77
funciones (API) 33
limitaciones del sistema de archivos
QNTC 73
limitaciones en el sistema de archivos
QFileSvr.400 62
mandatos 16
manejo en programas 39
B
bibliografa
91
C
carpetas
sistema de archivos QDLS 4, 54
Client Access 24
cliente PC
trabajar con el sistema de archivos
integrado 22
Copyright IBM Corp. 1999, 2000
clientes PC
cmo estn representados los sistemas
de archivos 25
conversin
datos 43
nombres de objeto 13, 41
conversin de caracteres 2, 13, 41
conversin de datos 43
D
definido por el usuario, sistema de
archivos 5
descripcin 5
descripcin de archivo abierto 38
descriptor de archivo 38
directorio
qu es? 6
actual 8
en programa de ejemplo 77
funciones (API) 33
inicial (home) 8
mandatos 16
mens y pantallas 15
sistema de archivos integrado 21
ventajas 1
directorio actual 8
directorio de trabajo 8
directorio inicial (home) 8
E
ejemplo
nombres de vas de acceso 9, 19, 36
programa utilizando las API del
sistema de archivos integrado 77
utilizacin de enlace simblico 11
enlace
qu es? 10
comparacin 40
en programa de ejemplo 77
fijo 10
funciones (API) 33
mandatos 16
mens y pantallas 15
por qu utilizarlo 10
simblico 11
uso en el sistema de archivos /
(raz) 49
uso en el sistema de archivos
QNTC 74
utilizacin en el sistema de archivos
QDLS 55
utilizacin en el sistema de archivos
QFileSvr.400 62
utilizacin en el sistema de archivos
QOpenSys 50
utilizacin en el sistema de archivos
QOPT 58
utilizacin en el sistema de archivos
QSYS.LIB 53
enlace fijo
qu es? 10
comparacin con enlace simblico 40
enlace simblico
qu es? 11
comparacin con enlace fijo 40
ejemplo de utilizacin 11
espacio de usuario
utilizacin en el sistema de archivos
QSYS.LIB 52
esquemas de codificacin 13, 41
F
FTP 25
funciones
en programa de ejemplo 77
ILE C/400 36
reglas de nombres de vas de
acceso 36
sistema de archivos integrado 33
utilizacin en programas C 29, 32
I
ILE C/400
alternativas API 32
funciones ANSI 36
funciones del sistema de archivos
integrado 33
informacin impresa relacionada 91
interfaz de sistema de archivos
integrado 1, 2, 5
interfaz de usuario
mandatos 16
mens y pantallas 15
vista desde PC 25
L
LU 6.2 en el sistema de archivos
QFileSvr.400 60
M
mandatos
lista 16
reglas de nombres de vas de
acceso 19
utilizacin 16
mens
reglas de nombres de vas de
acceso 19
utilizacin 15
migracin a travs de sistemas de
archivos 25
modalidad de acceso 39
modalidad de archivo abierto binario
modalidad de archivo abierto de
texto 43
43
93
43
N
NetServer 24
NetWare (QNetWare), sistema de archivos
caractersticas y limitaciones 69
nombre de va de acceso
qu es? 9
nombre de va de acceso absoluto 9
nombre de va de acceso relativo 9
reglas para las API 36
reglas para mandatos y pantallas 19
uso en el sistema de archivos /
(raz) 49
uso en el sistema de archivos
QNTC 73
utilizacin en el sistema de archivos
QDLS 55
utilizacin en el sistema de archivos
QFileSvr.400 60
utilizacin en el sistema de archivos
QOpenSys 50
utilizacin en el sistema de archivos
QOPT 57
utilizacin en el sistema de archivos
QSYS.LIB 52
nombre de va de acceso absoluto 9
nombre de va de acceso relativo 9
nombres
continuidad a travs de esquemas de
codificacin 13
continuidad a travs de idiomas
nacionales 41
uso en el sistema de archivos /
(raz) 49
uso en el sistema de archivos
QNTC 73
utilizacin en el sistema de archivos
QDLS 55
utilizacin en el sistema de archivos
QFileSvr.400 60
utilizacin en el sistema de archivos
QOpenSys 50
utilizacin en el sistema de archivos
QOPT 57
utilizacin en el sistema de archivos
QSYS.LIB 52
O
objeto
migracin entre sistemas de
archivos 25
operaciones (programa de ejemplo) 77
ptico, sistema de archivos (QOPT)
descripcin 5
OS/2 Warp Server para AS/400 5
P
pgina de cdigos 2, 13, 41
pantallas
reglas de nombres de vas de
acceso 19
utilizacin 15
permiso 39
94
Q
QFileSvr.400 4
QFileSvr.400 (QFileSvr.400), sistema de
archivos
descripcin 4
QFileSvr.400, sistema de archivos
descripcin 4
QNetWare, sistema de archivos 4
caractersticas y limitaciones 69
descripcin 4
QOPT 5
R
raz (/), sistema de archivos
caractersticas y limitaciones
descripcin 5
red, sistema de archivos 4
descripcin 4
48
S
seguridad
funciones (API) 33
limitaciones del sistema de archivos
QNTC 73
limitaciones en el sistema de archivos
QFileSvr.400 62
mandatos 16
manejo en programas 39
servidor de archivos 5
servidor de archivos de PC 5
servidor de archivos OS/400 5
servidor de archivos OS/400
(QFileSvr.400), sistema de archivos
caractersticas y limitaciones 59
sistema de archivos
qu es? 4
biblioteca (QSYS.LIB)
caractersticas y limitaciones 51
descripcin 5
comparacin 45
de servidor de archivos OS/400
(QFileSvr.400)
caractersticas y limitaciones 59
definido por el usuario, sistema de
archivos
descripcin 5
interfaz 5
migrar objetos 25
NetWare (QNetWare), sistema de
archivos
caractersticas y limitaciones 69
ptico (QOPT)
caractersticas y limitaciones 56
56
54
59
caractersticas y limitaciones
descripcin 4
72
49
56
51
41
2, 13, 41
T
TCP/IP en el sistema de archivos
QFileSvr.400 60
U
unicode
13
ndice
95
96
IBM