_setmode
Ustawia tryb translacji pliku.
int _setmode ( int fd, int mode );
Parametry
fd
Plik deskryptora.mode
Nowy tryb translacji.
Wartość zwracana
Jeśli to się powiedzie, zwraca poprzedni tryb translacji.
Jeśli nieprawidłowe parametry są przekazywane do tej funkcji, program obsługi nieprawidłowy parametr zostanie wywołany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli jest dozwolone wykonywanie, aby kontynuować, ta funkcja zwraca wartość -1 i zestawy errno do jednej EBADF, wskazującą na jej deskryptora nieprawidłowy plik lub EINVAL, wskazującą na nieprawidłową mode argumentu.
Aby uzyskać więcej informacji na temat tych i innych kody powrotne, zobacz _doserrno, numer błędu, _sys_errlist i _sys_nerr.
Uwagi
_setmode Ustawia funkcji mode tryb translacji pliku określonego przez fd.Przekazanie _O_TEXT jako mode ustawia tekst (translacji) trybu.Karetki powrotu — wiersza źródła (ut-LF) kombinacje są przetłumaczone w jednym wierszu kanał znak na dane wejściowe.Znaki źródła wiersza są przetłumaczyć kombinacji LF ut na dane wyjściowe.Przekazanie _O_BINARY ustawia binarny (niezrozumiały) tryb, w którym te tłumaczenia, będą pomijane.
Można również przekazać _O_U16TEXT, _O_U8TEXT, lub _O_WTEXT Aby włączyć tryb Unicode, jak pokazano w przykładzie drugi w dalszej części niniejszego dokumentu._setmodejest zwykle używana do modyfikowania domyślny tryb translacji stdin i stdout, można go użyć w dowolnym pliku.Jeśli zostanie zastosowany _setmode do pliku deskryptora dla strumienia, należy wywołać _setmode przed wykonaniem wszystkie operacje wejściowych lub wyjściowych w strumieniu.
Przestroga |
---|
Jeśli można zapisać danych do strumienia pliku, jawnie wyrównany kod za pomocą fflush przed użyciem _setmode do zmiany trybu.Jeśli nie opróżnianie kod, można otrzymać nieoczekiwane zachowanie.Jeśli nie zostały zapisane dane strumienia, nie trzeba opróżnianie kod. |
Wymagania
Procedura |
Wymagany nagłówek |
Nagłówki opcjonalne |
---|---|---|
_setmode |
< io.h > |
< fcntl.h > |
Aby uzyskać więcej informacji o zgodności, zobacz zgodności.
Przykład
// crt_setmode.c
// This program uses _setmode to change
// stdin from text mode to binary mode.
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
int main( void )
{
int result;
// Set "stdin" to have binary mode:
result = _setmode( _fileno( stdin ), _O_BINARY );
if( result == -1 )
perror( "Cannot set mode" );
else
printf( "'stdin' successfully changed to binary mode\n" );
}
// crt_setmodeunicode.c
// This program uses _setmode to change
// stdout to Unicode. Cyrillic and Ideographic
// characters will appear on the console (if
// your console font supports those character sets).
#include <fcntl.h>
#include <io.h>
#include <stdio.h>
int main(void) {
_setmode(_fileno(stdout), _O_U16TEXT);
wprintf(L"\x043a\x043e\x0448\x043a\x0430 \x65e5\x672c\x56fd\n");
return 0;
}