ios - 使用SIGPIPE和SIG_IGN的信号功能

Ric*_*rdo 3 ios

我加入了一个旧项目,我发现了这一行

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    signal(SIGPIPE, SIG_IGN);
    ....
}
Run Code Online (Sandbox Code Playgroud)

我在文档中找到了这个:

/*
 * For historical reasons; programs expect signal's return value to be
 * defined by <sys/signal.h>.
 */
Run Code Online (Sandbox Code Playgroud)

但我仍然对这条线的目的感到困惑.

小智 6

来自Apple的文档:

当连接关闭时,默认情况下,您的进程会收到SIGPIPE信号.如果您的程序没有处理或忽略此信号,您​​的程序将立即退出.

使用以下代码行全局忽略信号:signal(SIGPIPE,SIG_IGN);