Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ustawia domyślny tryb tłumaczenia plików dla operacji we/wy plików.
Składnia
errno_t _set_fmode(
int mode
);
Parametry
mode
Żądany tryb tłumaczenia plików: _O_TEXT lub _O_BINARY.
Wartość zwracana
Zwraca wartość zero, jeśli operacja powiedzie się, kod błędu w przypadku błędu. Jeśli mode nie _O_TEXT jest lub _O_BINARY _O_WTEXT, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, ta funkcja ustawia errno wartość EINVAL i zwraca wartość EINVAL.
Uwagi
Funkcja ustawia zmienną globalną _fmode . Ta zmienna określa domyślny tryb tłumaczenia plików dla operacji _open we/wy plików i _pipe.
_O_TEXT i _O_BINARY są zdefiniowane w pliku Fcntl.h. EINVAL element jest zdefiniowany w pliku Errno.h.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
| Procedura | Wymagany nagłówek | Opcjonalny nagłówek |
|---|---|---|
_set_fmode |
<stdlib.h> | <fcntl.h>, <errno.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// crt_set_fmode.c
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h> /* for _O_TEXT and _O_BINARY */
#include <errno.h> /* for EINVAL */
#include <sys\stat.h> /* for _S_IWRITE */
#include <share.h> /* for _SH_DENYNO */
int main()
{
int mode, fd, ret;
errno_t err;
int buf[12] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76 };
char * filename = "fmode.out";
err = _get_fmode(&mode);
if (err == EINVAL)
{
printf( "Invalid parameter: mode\n");
return 1;
}
else
printf( "Default Mode is %s\n", mode == _O_TEXT ? "text" :
"binary");
err = _set_fmode(_O_BINARY);
if (err == EINVAL)
{
printf( "Invalid mode.\n");
return 1;
}
if ( _sopen_s(&fd, filename, _O_RDWR | _O_CREAT, _SH_DENYNO, _S_IWRITE | _S_IREAD) != 0 )
{
printf( "Error opening the file %s\n", filename);
return 1;
}
if (ret = _write(fd, buf, 12*sizeof(int)) < 12*sizeof(int))
{
printf( "Problem writing to the file %s.\n", filename);
printf( "Number of bytes written: %d\n", ret);
}
if (_close(fd) != 0)
{
printf("Error closing the file %s. Error code %d.\n",
filename, errno);
}
system("type fmode.out");
}
Default Mode is binary
A B C D E F G H I J K L
Zobacz też
_fmode
_get_fmode
_setmode
We/Wy pliku trybu tekstowego i binarnego