如何在ctrl + C上关闭管道?

时间:2011-10-30 11:20:27

标签: c signals pipe

当我的C程序被SIGINT停止时,如何确保管道关闭?

2 个答案:

答案 0 :(得分:2)

您可以使用signal handling

#include <signal.h>

void sigHandler(int sig) { 
  // Respond to the signal here.
}

int main(..) {
  signal(SIGINT, &sigHandler);
  ..
}

答案 1 :(得分:1)

  • 如果你处理SIGINT,你可以调用close()。或者你可以选择保持原样,并保持管道畅通。
  • 如果您不处理信号,程序将消失,管道的一侧将自动关闭。管道的另一侧将获得EPIPE或读回零或-1。