Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

384
Visualizações
¿Cómo funciona la función read()? (¿Qué sucede con los datos no leídos en el búfer?)

Estaba tratando de leer la entrada del terminal usando read() en un ciclo while como condición, pero el código no se ejecuta hasta que finaliza el ciclo.

Aquí está mi código:

 #include<unistd.h> int main(void) { char ch; while(read(STDIN_FILENO,&ch,1) == 1 && ch != 'q') { printf("success"); } return 0; }

me da la salida:

 t fgr vr q successsuccesssuccesssuccesssuccesssuccesssuccesssuccesssuccesssuccess

Incluso cuando trato de leer datos normalmente, los datos no leídos en el búfer terminan así.

código:

 #include<unistd.h> int main(void) { char ch; read(STDIN_FILENO,&ch,1); return 0; }

salida en terminal

 user1@lap:~/Desktop$ ./program2e3 ted pradeep@LLP:~/Desktop$ ed

¿Por qué los datos no leídos se convierten en el siguiente comando?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debido a que los datos todavía están en el búfer IO en el kernel en lugar del búfer STDIO en su proceso, los datos no leídos serán leídos por el siguiente proceso que intente leerlos (es decir, el proceso de shell). Esto se debe a que el identificador abierto se pasó del proceso de shell a su proceso. Si hubiera abierto el dispositivo tty usted mismo, eso no habría sucedido.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda