C | ¿Cómo verificar si mi búfer de entrada (stdin) está vacío?

Quiero saber cómo verificar si mi búfer de entrada (quizás llamado stdin) está vacío o no. no quiero que el programa se detenga si el búfer está vacío, y no quiero que la entrada termine necesariamente con '\ n', por lo tanto, solo usar scanf no es suficiente.

Traté de buscar en Google y en este sitio web, pero ninguna respuesta fue suficiente. Intenté usar feof (stdin) así:

int main()
{
char c,x;
int num;
scanf("%c",&c);
scanf("%c",&x);
num=feof(stdin);
printf("%d",num);
}

pero todo lo que hizo fue imprimir 0 sin importar la entrada. agregar fflush (stdin) después del segundo scanf dio el mismo resultado. otras respuestas sugirieron usar select y poll pero no pude encontrar ninguna explicación para esas funciones. otro foro me dijo que usara getchar () pero creo que entendieron mal mi pregunta.

en la búsqueda de google probé: C cómo verificar el buffer de entrada vacío, C stdin vacío, c "buffer de entrada" check vacío. Esta es una pregunta general, no es para un código específico, por lo que no importa por qué lo necesito.

** si sugiere que use select / poll, ¿podría agregar una explicación sobre cómo usarlos?

Respuestas a la pregunta(4)

Su respuesta a la pregunta