netcat中输出错误信息的函数(2-2)

1.2.4 输出系统错误信息

if (errno)

{

perror(" ");

}

其中,errno宏用于保存程序在运行中的错误代码(error code),以及用于显示错误信息的字符串。当程序运行时,errno宏被设置为0,一旦程序发生了系统级的错误,errno宏就会被设置为其它值。perror()函数显示标准错误输出流stderr中的错误信息。关于errno宏和perror()函数的详细解释,请参考《C语言中errno与perror()函数》

1.2.5 清空stderr流

最后调用fflush()函数清空stderr流,为下次调用holler()函数做准备。

fflush(stderr);

2 bail()函数

在bail()函数中,调用holler()函数显示错误信息,之后优雅地关闭网络套接字。

2.1 函数格式

bail()函数的格式为

void bail(char* str, char* p1=NULL, char* p2 = NULL, char* p3 = NULL, char* p4 = NULL, char* p5 = NULL, char* p6 = NULL)

bail()函数的格式与holler()函数类似。

2.2 显示错误信息

在bail()函数中,首先将-v参数的标志o_verbose的值设置为1,之后调用holler()函数显示错误信息。

o_verbose = 1;

holler(str, p1, p2, p3, p4, p5, p6);

2.3 优雅地关闭套接字

shutdown(netfd, 0x02);  

closesocket(netfd);

close(netfd);

其中,netfd是netcat间用于通信的套接字。关于优雅关闭套接字的相关知识,请参考《VS2015中Winsock编程之优雅关闭套接字》

 

发布了314 篇原创文章 · 获赞 206 · 访问量 61万+

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/101052618