Caráter substituto - Substitute character

Um caractere substituto (␚) é um caractere de controle que é usado para preencher caracteres vazios no caso de eles terem que ser enviados em blocos de tamanho fixo, e para ficar no lugar de um caractere que é reconhecido como inválido ou errôneo ou irrepresentável em um determinado dispositivo. Também é usado como uma sequência de escape em algumas linguagens de programação .

No conjunto de caracteres ASCII , esse caractere é codificado pelo número 26 ( hexadecimal 1A ). Os teclados padrão transmitem esse código quando as teclas e são pressionadas simultaneamente ( Ctrl + Z , por convenção geralmente descrito como ^ Z ). O Unicode codifica este caractere, mas recomenda que o caractere de substituição ( , U + FFFD) seja usado em vez de representar entradas não decodificáveis, quando a codificação de saída for compatível com ele. CtrlZ

Usos

Fim do arquivo

Historicamente, no monitor PDP-6 , RT-11 , VMS e TOPS-10 , e nos primeiros sistemas operacionais PC CP / M 1 e 2 (e derivados como MP / M ), era necessário marcar explicitamente o final de um arquivo (EOF) porque o sistema de arquivos CP / M não pôde registrar o tamanho exato do arquivo sozinho; os arquivos foram alocados em extensões (registros) de tamanho fixo, normalmente deixando algum espaço alocado, mas não utilizado, no final de cada arquivo. Este espaço extra foi preenchido com 1A 16 ( hex ) caracteres sob CP / M. Os sistemas de arquivos CP / M estendidos usados ​​pelo CP / M 3 e superior (e derivados como Concurrent CP / M , Concurrent DOS e DOS Plus ) davam suporte a arquivos granulares de byte, então isso não era mais um requisito, mas permaneceu como um convenção (especialmente para arquivos de texto ) para garantir a compatibilidade com versões anteriores.

Em CP / M , 86-DOS , MS-DOS , PC DOS , DR-DOS e seus vários derivados, o caractere SUB também foi usado para indicar o final de um fluxo de caracteres e, portanto, usado para encerrar a entrada do usuário em um modo interativo janela de linha de comando (e como tal, freqüentemente usada para finalizar o redirecionamento de entrada do console, por exemplo, como instigado por COPY CON: TYPEDTXT.TXT).

Embora não seja mais necessário tecnicamente para indicar o final de um arquivo, muitos editores de texto e linguagens de programa ainda suportam esta convenção, ou podem ser configurados para inserir este caractere no final de um arquivo durante a edição, ou pelo menos lidar adequadamente com eles no texto arquivos. Nesses casos, é frequentemente denominado um EOF "suave", pois não representa necessariamente o final físico do arquivo, mas é mais um marcador que indica que "não há dados úteis além deste ponto". Na realidade, mais dados podem existir além desse caractere até o final real dos dados no sistema de arquivos, portanto, eles podem ser usados ​​para ocultar o conteúdo do arquivo quando o arquivo é inserido no console ou aberto nos editores. Muitos padrões de formato de arquivo (por exemplo, PNG ou GIF ) incluem o caractere SUB em seus cabeçalhos para executar precisamente esta função. Alguns formatos de arquivo de texto modernos (por exemplo, CSV-1203 ) ainda recomendam um caractere EOF à direita para ser anexado como o último caractere no arquivo. No entanto, digitar Control+ Znão incorpora um caractere EOF em um arquivo no DOS ou no Windows , nem as APIs desses sistemas usam o caractere para denotar o final real de um arquivo.

Algumas linguagens de programação (por exemplo, Visual Basic ) não irão ler além de um EOF "soft" ao usar as primitivas de leitura de arquivo de texto embutido (INPUT, LINE INPUT etc.), e métodos alternativos devem ser adotados, por exemplo, abrir o arquivo em modo binário ou usando o objeto do sistema de arquivos para progredir além dele.

O caractere 26 foi usado para marcar "Fim do arquivo", embora o ASCII chame esse caractere de Substituto e tenha outros caracteres para indicar "Fim do arquivo". O número 28, denominado " Separador de arquivos ", também foi usado para fins semelhantes.

Outros usos

Em sistemas operacionais Unix , esse caractere é normalmente usado para suspender o processo interativo em execução no momento. O processo suspenso pode então ser retomado no modo de primeiro plano (interativo), ou ser feito para retomar a execução no modo de segundo plano , ou ser encerrado . Quando inserido por um usuário em seu terminal de computador , o processo em primeiro plano atualmente em execução recebe um sinal de "parada de terminal" ( SIGTSTP ), que geralmente faz com que o processo suspenda sua execução. O usuário pode posteriormente continuar a execução do processo usando o comando "foreground" ( fg) ou o comando " background " ( bg).

O relatório de Considerações de Segurança Unicode recomenda esse caractere como uma substituição segura para caracteres não mapeáveis ​​durante a conversão do conjunto de caracteres.

Em muitas GUIs e aplicativos, Control+ Z( ⌘ Command+ Zno Mac OS) pode ser usado para desfazer a última ação. Em muitos aplicativos, ações anteriores à última também podem ser desfeitas pressionando Control+ Zvárias vezes. Control+ Zfoi uma das várias sequências de teclado escolhidas pelos designers do programa no Xerox PARC para controlar a edição de texto .

Representação

Representação ASCII e Unicode de "substituto":

  • Código octal: 32
  • Código decimal: 26
  • Código hexadecimal: 1A, U + 001A
  • Símbolo mnemônico: SUB
  • Valor binário: 11010

Veja também

Referências

Leitura adicional