Diferencia entre revisiones de «Manual de programación de OS/2/Llamadas DOSxxx del sistema de ficheros»

Contenido eliminado Contenido añadido
Sin resumen de edición
m Bot controlado: actualizada sintaxis de tabla; cambios triviales
 
Línea 1:
 
= GRUPO DE LLAMADAS DOSxxx (1) (Sistema de ficheros) =
 
== DosBeep ==
 
DosBeep activa el altavoz interno.
Línea 15 ⟶ 14:
rc = DosBeep(ulFrequency, ulDuration);
 
<table> <tr> <th>
 
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>ulFrecuency</td> <td>Frecuencia en hertzios (ciclos por segundo) en el rango 25 a 7FFF (ambos en hexadecimal).</td> </tr> <tr> <td>ulDuration</td> <td>Duración del sonido en milisegundos.</td> </tr> </table> <table> <tr> <th>
| ulFrecuency
| Frecuencia en hertzios (ciclos por segundo) en el rango 25 a 7FFF (ambos en hexadecimal).
|-
| ulDuration
| Duración del sonido en milisegundos.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>395</td> <td>Frecuencia no válida</td> </tr> </table>
| 0 || Sin error
|-
| 395 || Frecuencia no válida
|}
 
== DosClose ==
 
DosClose cierra un ''handle'' a un fichero, cauce o dispositivo.
Línea 34 ⟶ 48:
rc = DosClose(FileHandle);
 
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>FileHandle</td> <td>Un HANDLE asignado a un fichero, cauce o dispositivo físico.</td> </tr> </table> <table> <tr> <th>
| FileHandle
| Un HANDLE asignado a un fichero, cauce o dispositivo físico.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>6</td> <td>HANDLE no valido</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 5 || Acceso denegado
|-
| 6 || HANDLE no valido
|}
 
== DosCopy ==
 
DosCopy copia el contenido de un fichero o subdirectorio al fichero o subdirectorio de destino.
Línea 53 ⟶ 84:
rc = DosCopy(pszFicheroOrigen, pszFicheroDestino,ulModoOp);
<table> <tr> <th>
Parámetros
</th> </tr> <tr> <td>pszFicheroOrigen</td> <td>Puntero a una cadena con el path del fichero origen. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> <tr> <td>pszFicheroDestino</td> <td>Puntero a una cadena con el path del fichero destino. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> <tr> <td>ulModoOp</td> <td>Doble palabra de bits que define el modo de funcionamiento de la funcion.</td> </tr> <tr> <td></td> <td> <table border="2"> <tr> <td><u>Bit</u></td> <td><u>Descripción</u></td> </tr> <tr> <td>31-3</td> <td>Reservado. Debe ser cero</td> </tr> <tr> <td>2</td> <td>0: Descarta los EAs (Atributos extendidos) si el sistema de ficheros de destino no los soporta.
 
{|
1: Devuelve un error si el sistema de ficheros de destino no soporta EAs y el fichero a copiar los tiene. </td> </tr> <tr> <td>1</td> <td>0: Sustituye el fichero destino por el fichero origen.
|-
!
Parámetros
|-
| pszFicheroOrigen
| Puntero a una cadena con el path del fichero origen. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|-
| pszFicheroDestino
| Puntero a una cadena con el path del fichero destino. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|-
| ulModoOp
| Doble palabra de bits que define el modo de funcionamiento de la funcion.
|-
|
||
{| border="2"
|-
 
<td><u>Bit</u>
| <u>Descripción</u>
|-
| 31-3 || Reservado. Debe ser cero
|-
| 2
| 0: Descarta los EAs (Atributos extendidos) si el sistema de ficheros de destino no los soporta.
1: Devuelve un error si el sistema de ficheros de destino no soporta EAs y el fichero a copiar los tiene.
|-
| 1
| 0: Sustituye el fichero destino por el fichero origen.
1: Añade el fichero origen al final del fichero destino.
 
Es ignorado si el directorio o fichero de destino no existe.
|-
| </td> </tr> <tr> <td>0</td>
| <td>0: Si el fichero destino ya existe, devuelve un error.
1: Copia el fichero fuente incluso si ya existe el fichero destino.
 
|}
1: Copia el fichero fuente incluso si ya existe el fichero destino. </td> </tr> </table> </td> </tr> </table> <table> <tr> <th>
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>32</td> <td>Violación de compartición</td> </tr> <tr> <td>36</td> <td>Desbordamiento del buffer de compartición</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>112</td> <td>Disco lleno</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> <tr> <td>267</td> <td>Directorio incorrecto</td> </tr> <tr> <td>282</td> <td>EAs no soportados en la unidad</td> </tr> <tr> <td>283</td> <td>Hay EAs importantes</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 5 || Acceso denegado
|-
| 26 || Disco sin sistema de ficheros
|-
| 32 || Violación de compartición
|-
| 36
| Desbordamiento del buffer de compartición
|-
| 87 || Parámetro no valido
|-
| 108 || Unidad bloqueada
|-
| 112 || Disco lleno
|-
| 206 || Nombre de fichero demasiado largo
|-
| 267 || Directorio incorrecto
|-
| 282 || EAs no soportados en la unidad
|-
| 283 || Hay EAs importantes
|}
 
== DosCreateDir ==
 
DosCreateDir crea un nuevo directorio.
Línea 79 ⟶ 171:
rc = DosCreateDir(pszDirName, pEABuf);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszDirName</td> <td>Un puntero a una cadena con el nombre del directorio a crear. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> <tr> <td>pEABuf</td> <td>Contiene información sobre los atributos extendidos que puede contener dicho directorio. Si no van a ser definidos o modificados, debe ser puesto a NULL.</td> </tr> </table> <table> <tr> <th>
| pszDirName
| Un puntero a una cadena con el nombre del directorio a crear. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|-
| pEABuf
| Contiene información sobre los atributos extendidos que puede contener dicho directorio. Si no van a ser definidos o modificados, debe ser puesto a NULL.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>87</td> <td>Parametro no válido</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> <tr> <td>254</td> <td>Nombre de EA no válido</td> </tr> <tr> <td>255</td> <td>Lista de EAs inconsistente<br> Valor de EA no soportado</td> </tr> </table>
| 0 || Sin error
|-
| 3 || Path no encontrado
|-
| 5 || Acceso denegado
|-
| 26 || Disco sin sistema de ficheros
|-
| 87 || Parametro no válido
|-
| 108 || Unidad bloqueada
|-
| 206 || Nombre de fichero demasiado largo
|-
| 254 || Nombre de EA no válido
|-
| 255
| Lista de EAs inconsistente<br /> Valor de EA no soportado
|}
 
== DosDelete ==
 
DosDelete borra un fichero. Este puede ser recuperado.
Línea 96 ⟶ 219:
rc = DosDelete(pszFileName);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszFileName</td> <td>Un puntero a una cadena con el nombre del fichero a borrar. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> </table> <table> <tr> <th>
| pszFileName
| Un puntero a una cadena con el nombre del fichero a borrar. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>32</td> <td>Violación de compartición</td> </tr> <tr> <td>36</td> <td>Desbordamiento del buffer de compartición</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 5 || Acceso denegado
|-
| 26 || Disco sin sistema de ficheros
|-
| 32 || Violación de compartición
|-
| 36
| Desbordamiento del buffer de compartición
|-
| 87 || Parámetro no valido
|-
| 206 || Nombre de fichero demasiado largo
|}
 
== DosDeleteDir ==
 
DosDeleteDir borra un directorio. Es necesario que esté vacío.
Línea 113 ⟶ 264:
rc = DosDeleteDir(pszFileName);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszDirName</td> <td>Un puntero a una cadena con el nombre del directorio a borrar. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> </table> <table> <tr> <th>
| pszDirName
| Un puntero a una cadena con el nombre del directorio a borrar. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>16</td> <td>Intenta borrar el directorio actual</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 5 || Acceso denegado
|-
| 16 || Intenta borrar el directorio actual
|-
| 26 || Disco sin sistema de ficheros
|-
| 87 || Parámetro no valido
|-
| 108 || Unidad bloqueada
|-
| 206 || Nombre de fichero demasiado largo
|}
 
== DosFindClose ==
 
DosFindClose cierra un cauce de busqueda de ficheros abierto con DosFindFirst; esto es, termina una búsqueda.
Línea 130 ⟶ 308:
rc = DosFindClose(hdirDirHandle);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>hdirDirHandle</td> <td>Un handle asignado por una llamada a DosFindFirst, o usado en una llamada a DosFindNext.</td> </tr> </table> <table> <tr> <th>
| hdirDirHandle
| Un handle asignado por una llamada a DosFindFirst, o usado en una llamada a DosFindNext.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>6</td> <td>HANDLE no valido</td> </tr> </table>
| 0 || Sin error
|-
| 6 || HANDLE no valido
|}
 
== DosFindFirst ==
 
DosFindFirst busca el primer archivo de un directorio que coincide con el patrón de búsqueda.
Línea 153 ⟶ 344:
rc = DosFindFirst(pszFileName, phdirDirHandle, ulAttribute, pResultBuf, ulResultBufLen, pSearchCount, ulFileInfoLevel);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszFileName</td> <td>Puntero a una cadena ASCIIZ que define el criterio de busqueda</td> </tr> <tr> <td>phdirDirHandle</td> <td>Puntero a un handle, donde OS/2 almacenará el handle correspondiente a la busqueda en curso. Si antes de la llamada, contiene h'00000001, el sistema asigna el handle a la salida estandar. Si contiene h'FFFFFFFF, OS/2 devuelve un handle nuevo.</td> </tr> <tr> <td>ulAttribute</td> <td>Campo de bits que determina los tipos de archivos que se deben buscar.</td> </tr> <tr> <td></td> <td> <table border="1"> <tr> <td><u>Bit</u></td> <td>Descripción</td> </tr> <tr> <td>31-14</td> <td>Reservados. Deben ser cero.</td> </tr> <tr> <td>13</td> <td>1: los ficheros que no tienen activo el bit de ''ARCHIVO'' son ignorados.
| pszFileName
| Puntero a una cadena ASCIIZ que define el criterio de busqueda
|-
| phdirDirHandle
| Puntero a un handle, donde OS/2 almacenará el handle correspondiente a la busqueda en curso. Si antes de la llamada, contiene h'00000001, el sistema asigna el handle a la salida estandar. Si contiene h'FFFFFFFF, OS/2 devuelve un handle nuevo.
|-
| ulAttribute
| Campo de bits que determina los tipos de archivos que se deben buscar.
|-
|
||
{| border="1"
|-
 
<td><u>Bit</u>
0: son buscados también los ficheros que no tienen activo el bit de ''ARCHIVO''. </td> </tr> <tr> <td>12</td> <td>1: los ficheros que no tienen activo el bit de ''DIRECTORIO'' son ignorados.
| Descripción
 
|-
0: son buscados también los ficheros que no tienen activo el bit de ''DIRECTORIO'' </td> </tr> <tr> <td>11</td> <td>Reservado. Debe ser cero.</td> </tr> <tr> <td>10</td> <td>1: los ficheros que no tienen activo el bit de ''SISTEMA'' son ignorados.
| 31-14 || Reservados. Deben ser cero.
 
|-
0: son buscados también los ficheros que no tienen activo el bit de ''SISTEMA'' </td> </tr> <tr> <td>9</td> <td>1: los ficheros que no tienen activo el bit de ''OCULTO'' son ignorados.
| 13
 
0: son buscados también los ficheros que no tienen activo el bit de ''OCULTO'' </td> </tr> <tr> <td>8</td>| <td>1: los ficheros que no tienen activo el bit de ''SOLO_LECTURAARCHIVO'' son ignorados.
0: son buscados también los ficheros que no tienen activo el bit de ''ARCHIVO''.
 
|-
0: son buscados también los ficheros que no tienen activo el bit de ''SOLO_LECTURA'' </td> </tr> <tr> <td>7-6</td> <td>Reservados. Deben ser cero.</td> </tr> <tr> <td>5</td> <td>1: incluye los ficheros que tienen activo el bit de <u>ARCHIVO</u>.
| 12
 
0: excluye los ficheros que tienen activo el bit de <u>ARCHIVO</u>. </td> </tr> <tr> <td>4</td>| <td>1: incluye los ficheros que no tienen activo el bit de <u>''DIRECTORIO</u>.'' son ignorados.
0: son buscados también los ficheros que no tienen activo el bit de ''DIRECTORIO''
 
|-
0: excluye los ficheros que tienen activo el bit de <u>DIRECTORIO</u>. </td> </tr> <tr> <td>3</td> <td>Reservado. Debe ser cero.</td> </tr> <tr> <td>2</td> <td>1: incluye los ficheros que tienen activo el bit de <u>SISTEMA</u>.
| 11 || Reservado. Debe ser cero.
 
|-
0: excluye los ficheros que tienen activo el bit de <u>SISTEMA</u>. </td> </tr> <tr> <td>1</td> <td>1: incluye los ficheros que tienen activo el bit de <u>OCULTO</u>.
| 10
 
0| 1: excluye los ficheros que no tienen activo el bit de <u>OCULTO</u>.''SISTEMA'' </td>son </tr> <tr> <td>0</td> <td>1: incluye los ficheros que tienen activo el bit de <u>SOLO_LECTURA</u>ignorados.
0: son buscados también los ficheros que no tienen activo el bit de ''SISTEMA''
 
|-
0: excluye los ficheros que tienen activo el bit de <u>SOLO_LECTURA</u>. </td> </tr> </table> </td> </tr> <tr> <td>pResultBuf</td> <td>Puntero al buffer en donde se almacenarán los resultados de la búsqueda.</td> </tr> <tr> <td>ulResultBufLen</td> <td>Contiene la longitud, en bytes, de ''ResultBuf''</td> </tr> <tr> <td>pSearchCount</td> <td>Puntero a una variable de cuenta de coincidencias. Al hacer la llamada, esta variable debe contener el número máximo de entradas que se quieren leer en ''ResultBuf''. Al retornar, contiene el número de entradas que hay realmente.</td> </tr> <tr> <td>ulFileInfoLevel</td> <td>Especifica el nivel de información que se desea:<br> 1 es el nivel estandar. Con 2 y 3 se accede a los EAs.</td> </tr> </table> <table> <tr> <th>
| 9
| 1: los ficheros que no tienen activo el bit de ''OCULTO'' son ignorados.
0: son buscados también los ficheros que no tienen activo el bit de ''OCULTO''
|-
| 8
| 1: los ficheros que no tienen activo el bit de ''SOLO_LECTURA'' son ignorados.
0: son buscados también los ficheros que no tienen activo el bit de ''SOLO_LECTURA''
|-
| 7-6 || Reservados. Deben ser cero.
|-
| 5
| 1: incluye los ficheros que tienen activo el bit de <u>ARCHIVO</u>.
0: excluye los ficheros que tienen activo el bit de <u>ARCHIVO</u>.
|-
| 4
| 1: incluye los ficheros que tienen activo el bit de <u>DIRECTORIO</u>.
0: excluye los ficheros que tienen activo el bit de <u>DIRECTORIO</u>.
|-
| 3 || Reservado. Debe ser cero.
|-
| 2
| 1: incluye los ficheros que tienen activo el bit de <u>SISTEMA</u>.
0: excluye los ficheros que tienen activo el bit de <u>SISTEMA</u>.
|-
| 1
| 1: incluye los ficheros que tienen activo el bit de <u>OCULTO</u>.
0: excluye los ficheros que tienen activo el bit de <u>OCULTO</u>.
|-
| 0
| 1: incluye los ficheros que tienen activo el bit de <u>SOLO_LECTURA</u>.
0: excluye los ficheros que tienen activo el bit de <u>SOLO_LECTURA</u>.
|}
|-
| pResultBuf
| Puntero al buffer en donde se almacenarán los resultados de la búsqueda.
|-
| ulResultBufLen
| Contiene la longitud, en bytes, de ''ResultBuf''
|-
| pSearchCount
| Puntero a una variable de cuenta de coincidencias. Al hacer la llamada, esta variable debe contener el número máximo de entradas que se quieren leer en ''ResultBuf''. Al retornar, contiene el número de entradas que hay realmente.
|-
| ulFileInfoLevel
| Especifica el nivel de información que se desea:<br /> 1 es el nivel estandar. Con 2 y 3 se accede a los EAs.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>6</td> <td>HANDLE no valido</td> </tr> <tr> <td>18</td> <td>No hay más ficheros</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>111</td> <td>Desbordamiento del buffer</td> </tr> <tr> <td>113</td> <td>No hay más handles de busqueda</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> <tr> <td>208</td> <td>Meta-expansion demasiado larga</td> </tr> <tr> <td>254</td> <td>Nombre de EA no válido</td> </tr> <tr> <td>275</td> <td>EAs no coinciden</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 6 || HANDLE no valido
|-
| 18 || No hay más ficheros
|-
| 26 || Disco sin sistema de ficheros
|-
| 87 || Parámetro no valido
|-
| 108 || Unidad bloqueada
|-
| 111 || Desbordamiento del buffer
|-
| 113 || No hay más handles de busqueda
|-
| 206 || Nombre de fichero demasiado largo
|-
| 208 || Meta-expansion demasiado larga
|-
| 254 || Nombre de EA no válido
|-
| 275 || EAs no coinciden
|}
 
== DosFindNext ==
 
DosFindNext encuentra el siguiente archivo de un directorio que coincide con la cadena de busqueda dada en un ''DosFindFirst''. Al usarse un handle para identificar la búsqueda, se pueden hacer varias simultáneamente.
Línea 193 ⟶ 476:
rc = DosFindNext (hdirDirHandle, pResultBuf, ulResultBufLen, pSearchCount);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>hdirDirHandle</td> <td>Handle de busqueda, proporcionado por ''DosFindFirst''.</td> </tr> <tr> <td>pResultBuf</td> <td>Puntero al buffer donde almacenará las coincidencias encontradas.</td> </tr> <tr> <td>ulResultBufLen</td> <td>La longitud en bytes de ''ResultBuf''.</td> </tr> <tr> <td>pSearchCount</td> <td>Antes de la llamada, debe contener el número máximo de encuentros que se deben almacenar en el buffer a la vez. Al retornar, contentrá el número de coincidencias que realmente se han encontrado.</td> </tr> </table> <table> <tr> <th>
| hdirDirHandle
| Handle de busqueda, proporcionado por ''DosFindFirst''.
|-
| pResultBuf
| Puntero al buffer donde almacenará las coincidencias encontradas.
|-
| ulResultBufLen
| La longitud en bytes de ''ResultBuf''.
|-
| pSearchCount
| Antes de la llamada, debe contener el número máximo de encuentros que se deben almacenar en el buffer a la vez. Al retornar, contentrá el número de coincidencias que realmente se han encontrado.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>6</td> <td>HANDLE no valido</td> </tr> <tr> <td>18</td> <td>No hay más ficheros</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>111</td> <td>Desbordamiento del buffer</td> </tr> <tr> <td>275</td> <td>EAs no coinciden</td> </tr> </table>
| 0 || Sin error
|-
| 6 || HANDLE no valido
|-
| 18 || No hay más ficheros
|-
| 26 || Disco sin sistema de ficheros
|-
| 87 || Parámetro no valido
|-
| 111 || Desbordamiento del buffer
|-
| 275 || EAs no coinciden
|}
 
== DosForceDelete ==
 
DosForceDelete borra un fichero, de forma que es irrecuperable.
Línea 210 ⟶ 525:
rc = DosForceDelete(pszFileName);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszFileName</td> <td>Puntero a una cadena con el nombre del fichero a borrar. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> </table> <table> <tr> <th>
| pszFileName
| Puntero a una cadena con el nombre del fichero a borrar. Puede ir acompañado de un path y una unidad. Si ésta no es especificada, se toma la unidad actual. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>32</td> <td>Violación de compartición</td> </tr> <tr> <td>36</td> <td>Desbordamiento del buffer de compartición</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 5 || Acceso denegado
|-
| 26 || Disco sin sistema de ficheros
|-
| 32 || Violación de compartición
|-
| 36
| Desbordamiento del buffer de compartición
|-
| 87 || Parámetro no valido
|-
| 206 || Nombre de fichero demasiado largo
|}
 
== DosMove ==
 
DosMove mueve un fichero de un directorio a otro distinto.
Línea 228 ⟶ 571:
rc = DosMove(pszOldPathName, pszNewPathName);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszOldPathName</td> <td>Puntero a una cadena con el nombre del fichero a mover. Puede ir acompañado de un path. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> <tr> <td>pszNewPathName</td> <td>Puntero a una cadena con el nuevo nombre del fichero. Puede ir acompañado de un path. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> </table> <table> <tr> <th>
| pszOldPathName
| Puntero a una cadena con el nombre del fichero a mover. Puede ir acompañado de un path. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|-
| pszNewPathName
| Puntero a una cadena con el nuevo nombre del fichero. Puede ir acompañado de un path. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>17</td> <td>Los dispositivos fuente y destino son distintos</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>32</td> <td>Violación de compartición</td> </tr> <tr> <td>36</td> <td>Desbordamiento del buffer de compartición</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> <tr> <td>250</td> <td>Fichero origen y destino son el mismo</td> </tr> <tr> <td>251</td> <td>El directorio destino está dentro del fuente</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 5 || Acceso denegado
|-
| 17
| Los dispositivos fuente y destino son distintos
|-
| 26 || Disco sin sistema de ficheros
|-
| 32 || Violación de compartición
|-
| 36
| Desbordamiento del buffer de compartición
|-
| 87 || Parámetro no valido
|-
| 108 || Unidad bloqueada
|-
| 206 || Nombre de fichero demasiado largo
|-
| 250
| Fichero origen y destino son el mismo
|-
| 251
| El directorio destino está dentro del fuente
|}
 
== DosOpen ==
 
DosOpen abre un fichero nuevo o uno ya existente para trabajar con él.
Línea 252 ⟶ 637:
rc = DosOpen(pszFileName, pshfFileHandle, pActionTaken, ulFileSize, ulFileAttribute, ulOpenFlag, ulOpenMode, pEABuf);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszFileName</td> <td>Puntero a una cadena con el nombre del fichero a abrir. Puede ir acompañado de un path. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.</td> </tr> <tr> <td>pshfFileHandle</td> <td>Puntero a una variable donde OS/2 almacenará el handle asignado al fichero.</td> </tr> <tr> <td>pActionTaken</td> <td>Puntero a una variable donde OS/2 almacenará un valor que indica la acción tomada por DosOpen. Si la función falla, este valor no tiene significado.</td> </tr> <tr> <td></td> <td> <table border="1"> <tr> <td><u>Valor</u></td> <td><u>Definición</u></td> </tr> <tr> <td>1</td> <td>El fichero existía</td> </tr> <tr> <td>2</td> <td>El fichero fue creado (no existía)</td> </tr> <tr> <td>3</td> <td>El fichero fue truncado (existía y fue reescrito)</td> </tr> </table> </td> </tr> <tr> <td>ulFileSize</td> <td>Nuevo tamaño lógico (fin de fichero, EOF) en bytes. Este parámetro solo es válido cuando se crea un nuevo fichero o se reescribe uno. En otro caso es ignorado. Es un error crear o reemplazar un fichero con una longitud distinta de cero si el modo de apertura está puesto en ''SOLO_LECTURA''</td> </tr> <tr> <td>ulFileAttribute</td> <td>Doble palabra conteniendo el siguiente mapa de bits. Solo es válido si el fichero es creado.</td> </tr> <tr> <td></td> <td> <table border="1"> <tr> <td><u>Bit</u></td> <td><u>Descripción</u></td> </tr> <tr> <td>31-6</td> <td>Reservados. Deben ser cero.</td> </tr> <tr> <td>5</td> <td>El fichero ha sido archivado (bit ''ARCHIVO'' activo)</td> </tr> <tr> <td>4</td> <td>El fichero es un subdirectorio.</td> </tr> <tr> <td>3</td> <td>Reservado. Debe ser cero.</td> </tr> <tr> <td>2</td> <td>El fichero es un archivo de sistema.</td> </tr> <tr> <td>1</td> <td>El fichero es oculto y no aparece en una lista del directorio.</td> </tr> <tr> <td>0</td> <td>El fichero puede ser leido, pero no escrito. ''SOLO_LECTURA''.</td> </tr> <tr> <td>0</td> <td>Si está desactivado, el fichero puede ser leido y escrito.</td> </tr> </table> </td> </tr> <tr> <td>ulOpenFlag</td> <td>Campo de bits de doble palabra que indica la acción a tomar en caso de que exista o no el fichero.</td> </tr> <tr> <td></td> <td> <table border="1"> <tr> <td><u>Bits</u></td> <td><u>Descripción</u></td> </tr> <tr> <td>31-8</td> <td>Reservados. Deben ser cero.</td> </tr> <tr> <td>7-4</td> <td>0000: Abre un fichero que ya existe; falla si no existe.<br> 0001: Abre un fichero si existe; lo crea el fichero si no existe.</td> </tr> <tr> <td>3-0</td> <td>0000: Crea el fichero. Falla si ya existe.<br> 0001: Abre el fichero si ya existe.<br> 0010: Abre el fichero; si ya existe lo reescribe.</td> </tr> </table> </td> </tr> <tr> <td>ulOpenMode</td> <td>Campo de bits de doble palabra que describe el modo de operación de la función.</td> </tr> <tr> <td></td> <td> <table border="1"> <tr> <td><u>Bit</u></td> <td><u>Descripción</u></td> </tr> <tr> <td>31-16</td> <td>Reservado. Debe ser cero.</td> </tr> <tr> <td>15</td> <td>Apertura directa:<br> 0: ''FileName'' representa un fichero para ser abierto normalmente.<br> 1: ''FileName'' es 'unidad' (como C: o A:), y representa una unidad de disco o disquete para ser abierta para un acceso directo.</td> </tr> <tr> <td>14</td> <td>0: Las escrituras en el fichero son a través de la cache de disco. El sistema de ficheros escribe los sectores cuando ésta se llena o el fichero es cerrado.<br> 1: Las escrituras en el fichero son a través de la cache de disco, pero los sectores son escritos antes del retorno de una llamada de escritura síncrona. Este estado del fichero lo define como un archivo síncrono.</td> </tr> <tr> <td>13</td> <td>Bit de notificación de errores físicos.<br> 0: Los errores van a través del manejador del sistema.<br> 1: Los errores son notificados al thread que hizo la llamada a través de un código de retorno.</td> </tr> <tr> <td>12</td> <td>0: El driver de disco puede poner datos de las operaciones de I/O en su cache.<br> 1: Las operaciones de I/O al fichero no deben ser realizadas a través del cache del sistema de ficheros.</td> </tr> <tr> <td>11</td> <td>Reservado. Debe ser cero.</td> </tr> <tr> <td>10-8</td> <td>Especifica el modo en que se va a acceder al fichero, de cara a la colocación de los datos en el disco:<br> 000: Sin un modo concreto.<br> 001: Principalmente acceso secuencial.<br> 010: Principalmente acceso aleatorio.<br> 011: Aleatorio concentrado en zonas concretas.</td> </tr> <tr> <td>7</td> <td>0: El handle del fichero puede ser heredado por procesos creados con ''DosExecPgm''.<br> 1: El handle del fichero es privado, y solo accesible por el proceso actual.</td> </tr> <tr> <td>6-4</td> <td>Modos de compartición del fichero:<br> 001: DENY_ALL; no se permite que otros procesos accedan.<br> 010: DENY_WRITE; otros procesos pueden abrirlo para lectura, pero no para escritura.<br> 011: DENY_READ; otros procesos pueden abrirlo para escritura, pero no para lectura.<br> 100: DENY_NONE; otros procesos pueden abrirlo para lectura y para escritura.</td> </tr> <tr> <td>3</td> <td>Reservado. Debe ser cero.</td> </tr> <tr> <td>2-0</td> <td>Modo de acceso. Define como va a acceder el proceso que ha abierto el fichero:<br> 000: READ_ONLY; solo va a realizar operaciones de lectura.<br> 001; WRITE_ONLY; solo va a realizar operaciones de escritura.<br> 010; READ_WRITE; va a realizar operaciones de lectura y escritura.</td> </tr> </table> </td> </tr> <tr> <td>pEABuf</td> <td>Puntero a una variable de EAs. Antes de hacer la llamada, debe contener una estructura de atributos extendidos. A la salida, no hay cambios en ella. Si no se van a definir o modificar atributos extendidos, ''pEABuf'' debe apuntar a cero.</td> </tr> </table> <table> <tr> <th>
| pszFileName
| Puntero a una cadena con el nombre del fichero a abrir. Puede ir acompañado de un path. La barra derecha (/) y la invertida (\) pueden ser usadas indistintamente.
|-
| pshfFileHandle
| Puntero a una variable donde OS/2 almacenará el handle asignado al fichero.
|-
| pActionTaken
| Puntero a una variable donde OS/2 almacenará un valor que indica la acción tomada por DosOpen. Si la función falla, este valor no tiene significado.
|-
|
||
{| border="1"
|-
 
<td><u>Valor</u>
| <u>Definición</u>
|-
| 1 || El fichero existía
|-
| 2 || El fichero fue creado (no existía)
|-
| 3
| El fichero fue truncado (existía y fue reescrito)
|}
|-
| ulFileSize
| Nuevo tamaño lógico (fin de fichero, EOF) en bytes. Este parámetro solo es válido cuando se crea un nuevo fichero o se reescribe uno. En otro caso es ignorado. Es un error crear o reemplazar un fichero con una longitud distinta de cero si el modo de apertura está puesto en ''SOLO_LECTURA''
|-
| ulFileAttribute
| Doble palabra conteniendo el siguiente mapa de bits. Solo es válido si el fichero es creado.
|-
|
||
{| border="1"
|-
 
<td><u>Bit</u>
| <u>Descripción</u>
|-
| 31-6 || Reservados. Deben ser cero.
|-
| 5
| El fichero ha sido archivado (bit ''ARCHIVO'' activo)
|-
| 4 || El fichero es un subdirectorio.
|-
| 3 || Reservado. Debe ser cero.
|-
| 2
| El fichero es un archivo de sistema.
|-
| 1
| El fichero es oculto y no aparece en una lista del directorio.
|-
| 0
| El fichero puede ser leido, pero no escrito. ''SOLO_LECTURA''.
|-
| 0
| Si está desactivado, el fichero puede ser leido y escrito.
|}
|-
| ulOpenFlag
| Campo de bits de doble palabra que indica la acción a tomar en caso de que exista o no el fichero.
|-
|
||
{| border="1"
|-
 
<td><u>Bits</u>
| <u>Descripción</u>
|-
| 31-8 || Reservados. Deben ser cero.
|-
| 7-4
| 0000: Abre un fichero que ya existe; falla si no existe.<br /> 0001: Abre un fichero si existe; lo crea el fichero si no existe.
|-
| 3-0
| 0000: Crea el fichero. Falla si ya existe.<br /> 0001: Abre el fichero si ya existe.<br /> 0010: Abre el fichero; si ya existe lo reescribe.
|}
|-
| ulOpenMode
| Campo de bits de doble palabra que describe el modo de operación de la función.
|-
|
||
{| border="1"
|-
 
<td><u>Bit</u>
| <u>Descripción</u>
|-
| 31-16 || Reservado. Debe ser cero.
|-
| 15
| Apertura directa:<br /> 0: ''FileName'' representa un fichero para ser abierto normalmente.<br /> 1: ''FileName'' es 'unidad' (como C: o A:), y representa una unidad de disco o disquete para ser abierta para un acceso directo.
|-
| 14
| 0: Las escrituras en el fichero son a través de la cache de disco. El sistema de ficheros escribe los sectores cuando ésta se llena o el fichero es cerrado.<br /> 1: Las escrituras en el fichero son a través de la cache de disco, pero los sectores son escritos antes del retorno de una llamada de escritura síncrona. Este estado del fichero lo define como un archivo síncrono.
|-
| 13
| Bit de notificación de errores físicos.<br /> 0: Los errores van a través del manejador del sistema.<br /> 1: Los errores son notificados al thread que hizo la llamada a través de un código de retorno.
|-
| 12
| 0: El driver de disco puede poner datos de las operaciones de I/O en su cache.<br /> 1: Las operaciones de I/O al fichero no deben ser realizadas a través del cache del sistema de ficheros.
|-
| 11 || Reservado. Debe ser cero.
|-
| 10-8
| Especifica el modo en que se va a acceder al fichero, de cara a la colocación de los datos en el disco:<br /> 000: Sin un modo concreto.<br /> 001: Principalmente acceso secuencial.<br /> 010: Principalmente acceso aleatorio.<br /> 011: Aleatorio concentrado en zonas concretas.
|-
| 7
| 0: El handle del fichero puede ser heredado por procesos creados con ''DosExecPgm''.<br /> 1: El handle del fichero es privado, y solo accesible por el proceso actual.
|-
| 6-4
| Modos de compartición del fichero:<br /> 001: DENY_ALL; no se permite que otros procesos accedan.<br /> 010: DENY_WRITE; otros procesos pueden abrirlo para lectura, pero no para escritura.<br /> 011: DENY_READ; otros procesos pueden abrirlo para escritura, pero no para lectura.<br /> 100: DENY_NONE; otros procesos pueden abrirlo para lectura y para escritura.
|-
| 3 || Reservado. Debe ser cero.
|-
| 2-0
| Modo de acceso. Define como va a acceder el proceso que ha abierto el fichero:<br /> 000: READ_ONLY; solo va a realizar operaciones de lectura.<br /> 001; WRITE_ONLY; solo va a realizar operaciones de escritura.<br /> 010; READ_WRITE; va a realizar operaciones de lectura y escritura.
|}
|-
| pEABuf
| Puntero a una variable de EAs. Antes de hacer la llamada, debe contener una estructura de atributos extendidos. A la salida, no hay cambios en ella. Si no se van a definir o modificar atributos extendidos, ''pEABuf'' debe apuntar a cero.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>4</td> <td>Demasiados archivos abiertos</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>12</td> <td>Modo de acceso no valido</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>32</td> <td>Violación de compartición</td> </tr> <tr> <td>36</td> <td>Desbordamiento del buffer de compartición</td> </tr> <tr> <td>82</td> <td>No se puede crear fichero</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>99</td> <td>Dispositivo en uso</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>110</td> <td>Fallo en la apertura</td> </tr> <tr> <td>112</td> <td>Disco lleno</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> <tr> <td>231</td> <td>Cauce (''pipe'') ocupado.</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 4 || Demasiados archivos abiertos
|-
| 5 || Acceso denegado
|-
| 12 || Modo de acceso no valido
|-
| 26 || Disco sin sistema de ficheros
|-
| 32 || Violación de compartición
|-
| 36
| Desbordamiento del buffer de compartición
|-
| 82 || No se puede crear fichero
|-
| 87 || Parámetro no valido
|-
| 99 || Dispositivo en uso
|-
| 108 || Unidad bloqueada
|-
| 110 || Fallo en la apertura
|-
| 112 || Disco lleno
|-
| 206 || Nombre de fichero demasiado largo
|-
| 231 || Cauce (''pipe'') ocupado.
|}
 
== DosQueryCurrentDir ==
 
DosQueryCurrentDir devuelve el path completo del directorio actual para el proceso que realiza la llamada. Es necesario indicar una unidad, pues para cada una de ellas hay un path distinto.
Línea 271 ⟶ 823:
rc = DosQueryCurrentDir(ulDriveNumber, pbDirPath, pDirPathLen);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>ulDriveNumber</td> <td>Numero de unidad. El valor 0 indica la unidad actual, 1 es la unidad A, 2 es la unidad B, 3 la unidad C, etc.</td> </tr> <tr> <td>pbDirPath</td> <td>Puntero al buffer en donde OS/2 devolverá el path completo.</td> </tr> <tr> <td>pDirPathLen</td> <td>Puntero a una variable. Antes de la llamada debe contener la longitud del buffer. A la salida, si ocurre un error por ser un buffer muy pequeño, contendrá la longitud mínima necesaria en bytes.</td> </tr> </table> <table> <tr> <th>
| ulDriveNumber
| Numero de unidad. El valor 0 indica la unidad actual, 1 es la unidad A, 2 es la unidad B, 3 la unidad C, etc.
|-
| pbDirPath
| Puntero al buffer en donde OS/2 devolverá el path completo.
|-
| pDirPathLen
| Puntero a una variable. Antes de la llamada debe contener la longitud del buffer. A la salida, si ocurre un error por ser un buffer muy pequeño, contendrá la longitud mínima necesaria en bytes.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>15</td> <td>Unidad no válida</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>111</td> <td>Desbordamiento del buffer</td> </tr> </table>
| 0 || Sin error
|-
| 15 || Unidad no válida
|-
| 26 || Disco sin sistema de ficheros
|-
| 108 || Unidad bloqueada
|-
| 111 || Desbordamiento del buffer
|}
 
== DosQueryCurrentDisk ==
 
DosQueryCurrentDisk devuelve la unidad por defecto para el proceso que hace la llamada.
Línea 289 ⟶ 866:
rc = DosQueryCurrentDisk(pDriveNumber, pLogicalDriveMap);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pDriveNumber</td> <td>Puntero a una variable donde OS/2 devolverá el número de la unidad por defecto. El valor 1 es la unidad A, el 2 la unidad B, el 3 la unidad C, etc.</td> </tr> <tr> <td>pLogicalDriveMap</td> <td>Puntero a un mapa de bits donde el sistema devuelve un mapa de las unidades lógicas disponibles. Las unidades de la A a la Z tienen cada una un bit asignado, desde el 0 al 25, del mapa. Por ejemplo, el bit 0 representa la unidad A, el 1 la unidad B, etc. El significado de dicho bit es el siguiente:</td> </tr> <tr> <td></td> <td> <table border="1"> <tr> <td><u>Valor</u></td> <td><u>Definición</u></td> </tr> <tr> <td>0</td> <td>La unidad lógica no existe</td> </tr> <tr> <td>1</td> <td>La unidad lógica sí existe</td> </tr> </table> </td> </tr> </table> <table> <tr> <th>
| pDriveNumber
| Puntero a una variable donde OS/2 devolverá el número de la unidad por defecto. El valor 1 es la unidad A, el 2 la unidad B, el 3 la unidad C, etc.
|-
| pLogicalDriveMap
| Puntero a un mapa de bits donde el sistema devuelve un mapa de las unidades lógicas disponibles. Las unidades de la A a la Z tienen cada una un bit asignado, desde el 0 al 25, del mapa. Por ejemplo, el bit 0 representa la unidad A, el 1 la unidad B, etc. El significado de dicho bit es el siguiente:
|-
|
||
{| border="1"
|-
 
<td><u>Valor</u>
| <u>Definición</u>
|-
| 0 || La unidad lógica no existe
|-
| 1 || La unidad lógica sí existe
|}
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> </table>
| 0 || Sin error
|}
 
== DosRead ==
 
DosRead lee el número especificado de bytes a un buffer, desde un fichero, cauce o dispositivo.
Línea 309 ⟶ 913:
rc = DosRead(FileHandle, pBufferArea, ulBufferLength, pBytesRead);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>FileHandle</td> <td>Handle obtenido de DosOpen.</td> </tr> <tr> <td>pBufferArea</td> <td>Puntero a un buffer donde recibir los bytes leidos.</td> </tr> <tr> <td>ulBufferLength</td> <td>Longitud en bytes del buffer. Es el número de bytes a leer.</td> </tr> <tr> <td>pBytesRead</td> <td>Puntero a una variable donde OS/2 escribe el número de bytes leidos realmente.</td> </tr> </table> <table> <tr> <th>
| FileHandle || Handle obtenido de DosOpen.
|-
| pBufferArea
| Puntero a un buffer donde recibir los bytes leidos.
|-
| ulBufferLength
| Longitud en bytes del buffer. Es el número de bytes a leer.
|-
| pBytesRead
| Puntero a una variable donde OS/2 escribe el número de bytes leidos realmente.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>6</td> <td>HANDLE no valido</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>33</td> <td>Violación del bloqueo</td> </tr> <tr> <td>109</td> <td>El cauce (''pipe'') está cerrado</td> </tr> <tr> <td>234</td> <td>Demasiados datos</td> </tr> </table>
| 0 || Sin error
|-
| 5 || Acceso denegado
|-
| 6 || HANDLE no valido
|-
| 26 || Disco sin sistema de ficheros
|-
| 33 || Violación del bloqueo
|-
| 109 || El cauce (''pipe'') está cerrado
|-
| 234 || Demasiados datos
|}
 
== DosResetBuffer ==
 
DosResetBuffer escribe los buffers de escritura del fichero indicado. Cuando se escriben caracteres en un fichero, estos son almacenados en un buffer de, al menos, un sector, el cual se escribe cuando se llena o cuando se cierra el fichero. Esta llamada fuerza una escritura de dicho buffer aun cuando no esté lleno.
Línea 326 ⟶ 961:
 
rc = DosResetBuffer(FileHandle);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>FileHandle</td> <td>Un handle al fichero cuyo buffer se quiere almacenar.</td> </tr> </table> <table> <tr> <th>
| FileHandle
| Un handle al fichero cuyo buffer se quiere almacenar.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>6</td> <td>HANDLE no valido</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 5 || Acceso denegado
|-
| 6 || HANDLE no valido
|}
 
== DosScanEnv ==
 
DosScanEnv busca una variable de entorno (asignada con SET en el CONFIG.SYS o desde la línea de comandos) y devuelve su contenido.
Línea 344 ⟶ 996:
rc = DosScanEnv(pszEnvVarName, &amp;pszResultPointer);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszEnvVarName</td> <td>Puntero a una cadena con la variable de entorno a buscar. No se debe incluir el signo igual (=) pues no es parte del nombre.</td> </tr> <tr> <td>pszResultPointer</td> <td>Puntero a una variable donde el sistema devuelve un puntero a una cadena con el contenido de la variable de entorno. ''ResultPointer'' apunta al primer caracter de dicha cadena.</td> </tr> </table> <table> <tr> <th>
| pszEnvVarName
| Puntero a una cadena con la variable de entorno a buscar. No se debe incluir el signo igual (=) pues no es parte del nombre.
|-
| pszResultPointer
| Puntero a una variable donde el sistema devuelve un puntero a una cadena con el contenido de la variable de entorno. ''ResultPointer'' apunta al primer caracter de dicha cadena.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>203</td> <td>Variable de entorno no encontrada</td> </tr> </table>
| 0 || Sin error
|-
| 203 || Variable de entorno no encontrada
|}
 
== DosSetCurrentDir ==
 
DosSetCurrentDir permite cambiar el directorio por defecto. Solo afecta al proceso que realiza la llamada.
Línea 361 ⟶ 1029:
rc = DosSetCurrentDir(pszDirName);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>pszDirName</td> <td>Puntero a una cadena con el nuevo Path.</td> </tr> </table> <table> <tr> <th>
| pszDirName
| Puntero a una cadena con el nuevo Path.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>2</td> <td>Fichero no encontrado</td> </tr> <tr> <td>3</td> <td>Path no encontrado</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>8</td> <td>No hay suficiente memoria</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>108</td> <td>Unidad bloqueada</td> </tr> <tr> <td>206</td> <td>Nombre de fichero demasiado largo</td> </tr> </table>
| 0 || Sin error
|-
| 2 || Fichero no encontrado
|-
| 3 || Path no encontrado
|-
| 5 || Acceso denegado
|-
| 8 || No hay suficiente memoria
|-
| 26 || Disco sin sistema de ficheros
|-
| 87 || Parámetro no valido
|-
| 108 || Unidad bloqueada
|-
| 206 || Nombre de fichero demasiado largo
|}
 
== DosSetDefaultDisk ==
 
DosSetDefaultDisk cambia la unidad por defecto. Solo afecta al proceso que hace la llamada.
Línea 378 ⟶ 1073:
 
rc = DosSetDefaultDisk(ulDriveNumber);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>ulDriveNumber</td> <td>Nueva unidad por defecto. El valor 1 representa a la unidad A, 2 es la unidad B, 3 es la unidad C, etc.</td> </tr> </table> <table> <tr> <th>
| ulDriveNumber
| Nueva unidad por defecto. El valor 1 representa a la unidad A, 2 es la unidad B, 3 es la unidad C, etc.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>15</td> <td>Unidad no válida</td> </tr> </table>
| 0 || Sin error
|-
| 15 || Unidad no válida
|}
 
== DosShutdown ==
 
DosShutdown graba todos los buffers del sistema, cierra los ficheros abiertos y graba la cache, preparando el sistema para apagarlo. Puede tardar varios segundos en ejecutarse.
Línea 395 ⟶ 1103:
 
rc = DosShutdown(ulReserved);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>ulReserved</td> <td>Doble palabra. Debe valer cero.</td> </tr> </table> <table> <tr> <th>
| ulReserved || Doble palabra. Debe valer cero.
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>87</td> <td>Parámetro no valido</td> </tr> <tr> <td>274</td> <td>Ya se está ejecutando un ShutDown</td> </tr> </table>
| 0 || Sin error
|-
| 87 || Parámetro no valido
|-
| 274 || Ya se está ejecutando un ShutDown
|}
 
== DosWrite ==
DosWrite escribe un determinado grupo de bytes desde un buffer al fichero especificado.
Línea 415 ⟶ 1137:
rc = DosWrite(FileHandle, pBufferArea, ulBufferLength, pBytesWritten);
 
<table> <tr> <th>
{|
|-
!
Parámetros
|-
</th> </tr> <tr> <td>FileHandle</td> <td>Contiene un handle obtenido con DosOpen</td> </tr> <tr> <td>pBufferArea</td> <td>Puntero al buffer que contiene los datos a escribir</td> </tr> <tr> <td>ulBufferLength</td> <td>Numero de bytes a escribir</td> </tr> <tr> <td>pBytesWritten</td> <td>Puntero a una variable donde OS/2 devolverá el número de bytes escritos realmente</td> </tr> </table> <table> <tr> <th>
| FileHandle
| Contiene un handle obtenido con DosOpen
|-
| pBufferArea
| Puntero al buffer que contiene los datos a escribir
|-
| ulBufferLength || Numero de bytes a escribir
|-
| pBytesWritten
| Puntero a una variable donde OS/2 devolverá el número de bytes escritos realmente
|}
{|
|-
!
Códigos de error
|-
</th> </tr> <tr> <td>0</td> <td>Sin error</td> </tr> <tr> <td>5</td> <td>Acceso denegado</td> </tr> <tr> <td>6</td> <td>HANDLE no valido</td> </tr> <tr> <td>19</td> <td>El sistema es de solo lectura o está protegido contra escritura</td> </tr> <tr> <td>26</td> <td>Disco sin sistema de ficheros</td> </tr> <tr> <td>29</td> <td>Ha fallado la escritura</td> </tr> <tr> <td>33</td> <td>Violación del bloqueo</td> </tr> <tr> <td>109</td> <td>El cauce (''pipe'') está cerrado</td> </tr> </table>
| 0 || Sin error
|-
| 5 || Acceso denegado
|-
| 6 || HANDLE no valido
|-
| 19
| El sistema es de solo lectura o está protegido contra escritura
|-
| 26 || Disco sin sistema de ficheros
|-
| 29 || Ha fallado la escritura
|-
| 33 || Violación del bloqueo
|-
| 109 || El cauce (''pipe'') está cerrado
|}