Após a pesquisa, parece que o ascii do EOF é -1
, mas como posso echo
descobrir isso?
Meu objetivo é testar se ele se comporta da mesma forma que pressionar ctrl-d
se eu echo
sair EOF
.
Após a pesquisa, parece que o ascii do EOF é -1
, mas como posso echo
descobrir isso?
Meu objetivo é testar se ele se comporta da mesma forma que pressionar ctrl-d
se eu echo
sair EOF
.
Respostas:
Não há como ecoar um EOF. Um EOF só pode ser gerado atingindo o final de um arquivo ou invocando o pressionamento de tecla associado à eof
configuração do terminal ( CtrlDpor padrão) quando o arquivo que está sendo lido está vinculado ao terminal.
int
com o valor de -1 (ou 4294967295 se considerarmos a versão não assinada) não pode ser um caractere de qualquer maneira, pois os caracteres podem ter apenas um valor de 0 a 255, inclusive.
int
em primeiro lugar?
fgetc(3)
página de manual.
No bash, você pode escrever exec 1>&-
para fechar o descritor de arquivo conhecido como stdout.
Como Ignacio já disse, EOF não é um personagem, então a questão de como "ecoar EOF" não faz nenhum sentido em primeiro lugar. Você pode repetir caracteres (bytes) ou fechar um descritor de arquivo, mas nunca repetir um EOF.
EOF
definido como-1
em stdio.h? por que não podemos repetir se conhecemos seu valor ascii?