在C中停止getline

在这里,我正在尝试使用getline获取用户输入。 收到中断^C我希望它发出getline信号停止并继续使用我的程序而不是终止它。

我试图给stdin写一个换行符,但显然这不起作用。

 fwrite("\n", 1, 1, stdin); 

那么实现这一目标的方法是什么?

假设您的代码类似于:

 int main(int argc, char **argv) { //Code here (point A) getline(lineptr, size, fpt); //More code here (point B) } 

包含并将SIGINT绑定到处理函数f

 #include  //Declare handler for signals void signal_handler(int signum); int main(int argc, char **argv) { //Set SIGINT (ctrl-c) to call signal handler signal(SIGINT, signal_handler); //Code here (point A) getline(lineptr, size, fpt); //More code here (point B) } void signal_handler(int signum) { if(signum == SIGINT) { //Received SIGINT } } 

在这一点上我要做的是重构代码,以便B点之后的任何代码都在它自己的函数中,称之为code_in_b() ,并在处理程序中调用code_in_b()

更多信息: 信号