原代码片段如下,程序在第08行报错,但是try,,,catch无法抓到错误,经过debug分析是由于收到broken pipe的信号。看来程序此时被终止了;那么我期望不被终止,该怎么做了。
01 int sendLen = 0;
02 int totalLen = 0;
03 int packSize = pack.size();
04 while(packSize != totalLen)
05 {
06 try
07 {
08 sendLen = write(fd, const_cast<char*>(pack.c_str())+totalLen, packSize-totalLen);
09 totalLen += sendLen;
10 if(sendLen <= 0)
11 {
12 totalLen == 0;
13 fprintf(stderr,"write fd err . fd == %d - %m/n",fd);
14 return false;
15 }
16 }