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 poprzedniego tryb translacji.

Jeżeli nie przekazano nieprawidłowe parametry do tej funkcji, program obsługi nieprawidłowy parametr zostanie wywołany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, to funkcja zwraca –1 i zestawy errno albo EBADF, która wskazuje deskryptora nieprawidłowy plik lub EINVAL, która wskazuje nieprawidłową mode argument.

Aby uzyskać więcej informacji na temat tych i innych kodów powrotu, zobacz _doserrno, errno, _sys_errlist i _sys_nerr.

Uwagi

_setmode Funkcja ustawia się na mode tryb translacji pliku przez fd.Przekazując _O_TEXT jako mode tekstu (translacji) ustawia tryb.Return–line przewóz paszy kombinacji (CR LF) zostały przetłumaczone na pojedynczy wiersz znaku wysuwu na wejściu.Znaki wysuwu wiersza są tłumaczone na kombinacji CR LF na wyjściu.Przekazując _O_BINARY ustawia binarny (nieprzetłumaczony) tryb, w którym te tłumaczenia są pomijane.

Można również przekazać _O_U16TEXT, _O_U8TEXT, lub _O_WTEXT Aby włączyć tryb Unicode, jak pokazano w drugim przykładzie tego dokumentu._setmodeZazwyczaj można modyfikować domyślny tryb translacji stdin i stdout, ale można go użyć na dowolny plik.Jeśli zastosujesz _setmode do pliku deskryptora dla strumienia, call _setmode przed wykonaniem jakichkolwiek operacji wejściowego lub wyjściowego w strumieniu.

Informacje dotyczące przestrogiPrzestroga

Jeśli piszesz danych do strumienia pliku jawnie opróżnienia kodu za pomocą fflush przed użyciem _setmode do zmiany trybu.Jeśli kod nie jest flush, można otrzymać nieoczekiwane zachowanie.Jeśli dane nie zostały zapisane w strumieniu, nie masz flush kod.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

Opcjonalna nagłówki

_setmode

<io.h>

<fcntl.h>

Informacji dotyczących 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;

}.NET Framework równoważne

Zobacz też

Informacje

Obsługa plików

_creat, _wcreat

fopen, _wfopen

_open, _wopen

_set_fmode