_fsopen, _wfsopen
Abra una secuencia con el uso compartido de archivos.
FILE *_fsopen(
const char *filename,
const char *mode,
int shflag
);
FILE *_wfsopen(
const wchar_t *filename,
const wchar_t *mode,
int shflag
);
Parámetros
filename
Nombre del archivo a abrir.mode
tipo de acceso permitido.shflag
tipo de uso compartido permitido.
Valor devuelto
Cada una de estas funciones devuelve un puntero a la secuencia.Un valor de puntero NULL indica un error.Si filename o mode es NULL o una cadena vacía, estas funciones se invoca el controlador no válido del parámetro, como se describe en. Validación de parámetrosSi la ejecución puede continuar, estas funciones NULL return y errno determinado a EINVAL.
Para obtener más información sobre éstos y otros códigos de error, vea _doserrno, errno, _sys_errlist, y _sys_nerr.
Comentarios
La función de _fsopen abre el archivo especificado por filename como secuencia y prepara el archivo para leer o escribir compartida posterior, como definido por el modo y los argumentos de shflag ._wfsopen es una versión con caracteres anchos de _fsopen; los argumentos de filename y de mode a _wfsopen son cadenas de caracteres._wfsopen y _fsopen se comportan exactamente igual de otra manera.
Cadena de caracteres mode especifica el tipo de acceso solicitado para el archivo, como se muestra en la tabla siguiente.
Término |
Definición |
---|---|
"r" |
Abrir para leer.Si el archivo no existe o no se encuentra, la llamada de _fsopen falla. |
"w" |
Abra un archivo vacío para escribir.Si existe el archivo dado, se destruyen su contenido. |
"a" |
Abrir para escribir al final del archivo (el anexar); crea el archivo primero si no existe. |
"r+" |
Abrir para la lectura y escritura.(El archivo no debe existir.) |
"w+" |
Abra un archivo vacío para la lectura y escritura.Si existe el archivo dado, se destruyen su contenido. |
"a+" |
Abrir para leer y anexar; crea el archivo primero si no existe. |
Utilice los tipos de "w" y de "w+" con cuidado, como pueden destruir archivos existentes.
Si se abre con el tipo de acceso de "a" o de "a+" , todas las operaciones de escritura aparecen al final del archivo.El puntero de archivo se puede mover mediante fseek o rewind, pero se mueve siempre al final del archivo antes de que se realice cualquier operación de escritura.Así, los datos existentes no pueden sobrescribirse.Cuando se especifica "r+", "w+", o el tipo de acceso de "a+" , se permiten la lectura y escritura (el archivo se abre para la actualización).Sin embargo, al cambiar entre la lectura y escritura, debe haber fsetposintermedia, fseek, u operación de rebobinado .La posición actual se puede especificar para la operación de fsetpos o de fseek , si lo desea.Además de los valores anteriores, uno de los siguientes caracteres se puede incluir en mode para especificar el de modalidad de traducción para las nuevas líneas, y para la administración de archivos.
Término |
Definición |
---|---|
t |
Abra un archivo en modo de texto (traducido).En este modo, las combinaciones de fuentes de la retorno-línea de carro (CR-LF) se convierten en los únicos saltos de línea (LF) en entrada y caracteres de LF se traducen a las combinaciones de CR-LF en la salida.También, CTRL+Z se interpretan como un final de archivo de entrada.En archivos abierto para lectura o lectura/escritura, comprobaciones de _fsopen un CTRL+Z al final del archivo y colóquelo, si es posible.Esto se hace porque utilizar fseek y ftell para desplazarse en un archivo que termina con un CTRL+Z podría hacer fseek para comportarse incorrectamente cerca del final del archivo. |
b |
Abra un archivo en modo (sin traducir) binario; se suprimen las conversiones anteriores. |
S |
Especifica que almacena en memoria caché se optimiza para, pero no se restringe, acceso secuencial a desde el disco. |
R |
Especifica que almacena en memoria caché se optimiza para, pero no se restringe, acceso aleatorio a desde el disco. |
T |
especifica un archivo como temporal.Si es posible, no se vacía en el disco. |
D |
especifica un archivo como temporal.Se elimina cuando se cierra el puntero de archivo pasado. |
Si t o b no se proporcione en mode, el de modalidad de traducción está definido por la variable _fmodede valor por defecto-modo.Si t o b precedido el argumento, se produce un error en la función y devuelve NULL.Para obtener una explicación de los modos de texto y el binario, vea E/S de archivo de texto y el modo binario.
El argumento shflag es una expresión constante el constar de las constantes de manifiesto siguientes, definidos en Share.h.
Término |
Definición |
---|---|
_SH_COMPAT |
Establece el modo de compatibilidad para las aplicaciones de 16 bits. |
_SH_DENYNO |
permite el acceso de lectura y escritura. |
_SH_DENYRD |
Deniega el acceso de lectura al archivo. |
_SH_DENYRW |
Deniega el acceso de lectura y escritura al archivo. |
_SH_DENYWR |
Deniega el acceso de escritura al archivo. |
Asignaciones de la rutina de texto genérico
rutina de Tchar.h |
_UNICODE y _MBCS no definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tfsopen |
_fsopen |
_fsopen |
_wfsopen |
Requisitos
Función |
Encabezado necesario |
encabezados opcionales |
---|---|---|
_fsopen |
<stdio.h> |
<share.h> Para la constante de manifiesto para el parámetro de shflag . |
_wfsopen |
<stdio.h> o <wchar.h> |
<share.h> Para la constante de manifiesto para el parámetro de shflag . |
Ejemplo
// crt_fsopen.c
#include <stdio.h>
#include <stdlib.h>
#include <share.h>
int main( void )
{
FILE *stream;
// Open output file for writing. Using _fsopen allows us to
// ensure that no one else writes to the file while we are
// writing to it.
//
if( (stream = _fsopen( "outfile", "wt", _SH_DENYWR )) != NULL )
{
fprintf( stream, "No one else in the network can write "
"to this file until we are done.\n" );
fclose( stream );
}
// Now others can write to the file while we read it.
system( "type outfile" );
}
Equivalente en .NET Framework
System:: IO:: secuencia de archivo:: secuencia de archivo