¿Cómo puedo habilitar ctrl-c / ctrl + break después de llamar al sistema?

He escrito un programa que invoca un comando del sistema desde adentro:

#include <stdlib.h>

int main(void)
{
    while(1)
    {
        system("ls 2>&1 1>/dev/null"); // comment this line out to enable ctrl+break
    }

    return 0;
}

Sin embargo, cuando se está ejecutando, CTRL + C y CTRL + BREAK ya no funcionan y parecen ignorarse.

Estoy tratando de escribir un programa que realice algunas operaciones en segundo plano relacionadas con el shell, pero también quiero poder salir del programa cuando el usuario quiera hacerlo.

¿Hay alguna manera de hacer que funcione como yo quiero? ¿Debo cambiar la arquitectura para realizar algún tipo de fork / exec?