using fgets como función sin bloqueo c ++

Estoy escribiendo un programa que lee en un bucle desde el stdin, usando la función fgets, de la siguiente manera:

while(fgets(buffer2, BUFFERSIZE , stdin) != NULL){
  //Some code  
}

Quiero que mi código no se bloquee, es decir: no quiero que el programa se mantenga en la línea 'fgets' cuando no hay ninguna entrada por parte del usuario en este momento.
¿Cómo puedo hacerlo

Respuestas a la pregunta(5)

Su respuesta a la pregunta