Udostępnij za pośrednictwem


_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.

Informacje dotyczące przestrogiPrzestroga

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;
}

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Obsługa plików

_creat, _wcreat

fopen, _wfopen

_open, _wopen

_set_fmode