您的位置:首页 > 编程语言

个人优秀代码片段2

2015-11-28 14:55 281 查看

define dealWithErr(v) \

do{                                                         \
errno = 0;                                              \
if ((v) < 0)                                            \
{                                                       \
fprintf(stderr, "filename: %s(%d): " #v "failure\n",\
__FILE__, __LINE__);                \
fprintf(stderr, "error number = %d\n", errno);      \
exit(EXIT_FAILURE);                                 \
}                                                       \
} while (0)


static void porting_test_server_control(int mode)

{

const int reuseaddr = 1;

struct sockaddr_in seraddr;

/*注册常用信号*/
register_common_signal();

dealWithErr((sockfd = socket(AF_INET, SOCK_STREAM, 0)));

seraddr.sin_family = AF_INET;
seraddr.sin_port = htons(SOCK_PORT_NUM);
seraddr.sin_addr.s_addr = inet_addr(SOCK_IP_ADDR);

dealWithErr(setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (const void *)&reuseaddr, sizeof(reuseaddr)));
dealWithErr(bind(sockfd, (struct sockaddr *)&seraddr, sizeof(seraddr)));
dealWithErr(listen(sockfd, SOCK_CONNECT_MAX));

non_block_monitor(mode, sockfd);
closesocket(sockfd);


}

在主流程中减少分支可以让代码逻辑更紧蹙,更易维护。

以上是一种含有简单错误处理的分支封装方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codec