Znak zastępczy - Substitute character

Znak zastępczy (␚) to znak kontrolny, który służy do uzupełniania pustych znaków w przypadku, gdy mają one być wysyłane w blokach o stałym rozmiarze i zastępuje znak, który jest rozpoznawany jako nieprawidłowy, błędny lub niereprezentowalny na danym urządzeniu. Jest również używany jako sekwencja ucieczki w niektórych językach programowania .

W zestawie znaków ASCII znak ten jest kodowany liczbą 26 ( 1A hex ). Klawiatury standardowe przesyłają ten kod, gdy klawisze Ctrli Zsą naciśnięte jednocześnie ( Ctrl+Z , zgodnie z konwencją często określaną jako ^Z ). Unicode koduje ten znak, ale zaleca, aby zamiast niego używać znaku zastępującego ( , U+FFFD) do reprezentowania danych wejściowych, których nie można zdekodować, jeśli kodowanie wyjściowe jest z nim zgodne.

Zastosowania

Koniec pliku

Historycznie, pod monitorem PDP-6 , RT-11 , VMS i TOPS-10 oraz we wczesnych systemach operacyjnych PC CP/M 1 i 2 (oraz pochodnych jak MP/M ) konieczne było wyraźne oznaczenie końca pliku (EOF), ponieważ system plików CP/M nie mógł sam zarejestrować dokładnego rozmiaru pliku; pliki zostały przydzielone w ekstentach (rekordach) o stałym rozmiarze, zwykle pozostawiając trochę przydzielonego, ale niewykorzystanego miejsca na końcu każdego pliku. Ta dodatkowa przestrzeń została wypełniona 1A 16 ( szesnastkowo ) znakami pod CP/M. Rozszerzone systemy plików CP/M używane przez CP/M 3 i nowsze wersje (oraz pochodne, takie jak Concurrent CP/M , Concurrent DOS i DOS Plus ) obsługiwały pliki granularne bajtowo, więc nie było to już wymogiem, ale pozostało jako konwencja (szczególnie dla plików tekstowych ) w celu zapewnienia kompatybilności wstecznej.

W CP/M , 86-DOS , MS-DOS , PC DOS , DR-DOS i ich różnych pochodnych znak SUB był również używany do wskazania końca strumienia znaków, a tym samym był używany do zakończenia wprowadzania danych przez użytkownika w interaktywnym okno wiersza poleceń (i jako takie często używane do zakończenia przekierowania wejścia konsoli, np. na polecenie COPY CON: TYPEDTXT.TXT).

Chociaż nie jest już wymagane technicznie wskazywanie końca pliku, wiele edytorów tekstu i języków programowania nadal obsługuje tę konwencję lub można je skonfigurować tak, aby wstawiać ten znak na końcu pliku podczas edycji lub przynajmniej odpowiednio radzić sobie z nimi w tekście pliki. W takich przypadkach jest często określany jako „miękki” EOF, ponieważ niekoniecznie reprezentuje fizyczny koniec pliku, ale jest bardziej znacznikiem wskazującym, że „nie ma żadnych użytecznych danych poza tym punktem”. W rzeczywistości może istnieć więcej danych poza tym znakiem, aż do faktycznego końca danych w systemie plików, dzięki czemu można go użyć do ukrycia zawartości pliku, gdy plik jest wprowadzany w konsoli lub otwierany w edytorach. Wiele standardów formatów plików (np. PNG lub GIF ) zawiera znak SUB w swoich nagłówkach, aby wykonać dokładnie tę funkcję. Niektóre współczesne formaty plików tekstowych (np. CSV-1203 ) nadal zalecają dołączenie końcowego znaku EOF jako ostatniego znaku w pliku. Jednak wpisywanie Control+ Znie osadzić znak EOF do pliku w obu DOS lub systemu Windows , ani nie z API tych systemów użyć znaku do oznaczania rzeczywistej koniec pliku.

Niektóre języki programowania (np. Visual Basic ) nie będą czytać poza „miękkim” EOF podczas korzystania z wbudowanych prymitywów odczytu plików tekstowych (INPUT, LINE INPUT itp.) i należy przyjąć alternatywne metody, np. otwieranie pliku w trybie binarnym lub za pomocą obiektu systemu plików, aby przejść dalej.

Znak 26 został użyty do oznaczenia „Koniec pliku”, mimo że ASCII nazywa ten znak „Zastąp” i zawiera inne znaki wskazujące „Koniec pliku”. Numer 28, który nazywa się „ Separatorem Plików ”, był również używany do podobnych celów.

Inne zastosowania

W systemach operacyjnych Unix ten znak jest zwykle używany do zawieszenia aktualnie wykonywanego procesu interaktywnego. Zawieszony proces można następnie wznowić w trybie pierwszego planu (interaktywnym) lub wznowić wykonywanie w trybie w tle lub zakończyć . Po wprowadzeniu przez użytkownika na jego terminalu komputerowym , aktualnie uruchomiony proces na pierwszym planie jest wysyłany sygnałem „zatrzymania terminala” ( SIGTSTP ), który zazwyczaj powoduje zawieszenie procesu. Użytkownik może później kontynuować wykonywanie procesu za pomocą polecenia „na pierwszym planie” ( fg) lub polecenia „w tle ” ( bg).

Raport Zagadnienia dotyczące zabezpieczeń Unicode zaleca ten znak jako bezpieczny zamiennik znaków niemapowalnych podczas konwersji zestawu znaków.

W wielu GUI i aplikacjach Control+ Z( ⌘ Command+ Zna Mac OS) może być użyty do cofnięcia ostatniej akcji. W wielu aplikacjach wcześniejsze akcje można cofnąć, naciskając wielokrotnie Control+ Z. Control+ Zbył jedną z kilku sekwencji klawiszy wybranych przez projektantów programu w Xerox PARC do sterowania edycją tekstu .

Reprezentacja

Reprezentacja ASCII i Unicode „substytutu”:

  • Kod ósemkowy: 32
  • Kod dziesiętny: 26
  • Kod szesnastkowy: 1A, U+001A
  • Symbol mnemoniczny: SUB
  • Wartość binarna: 11010

Zobacz też

Bibliografia

Dalsza lektura