usando fgets como função não-bloqueadora c ++

Estou escrevendo um programa que lê um loop do stdin, usando a função fgets, da seguinte maneira:

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

Quero que meu código não seja bloqueador, ou seja: não quero que o programa fique na linha 'fgets' quando não houver nenhuma entrada do usuário no moment
Como eu posso fazer isso

questionAnswers(5)

yourAnswerToTheQuestion