我正在进行UNIX套接字练习并尝试创建类似于流套接字example的套接字,但我意识到在示例代码中,传递给memset()
的第3个参数是{ {1}} sizeof
:
struct
其中memset(&addr, 0, sizeof(struct sockaddr_un));
在程序开头声明为addr
的定义。程序如何知道struct sockaddr_un
一个尚未初始化的结构?因为当我在程序中做同样的事情时,GCC给了我一个错误。感谢。
答案 0 :(得分:3)
程序如何知道尚未实例化的结构的大小?
与sizeof(int)
,sizeof(char)
等相同。在应用sizeof
之前,您不需要变量进行初始化,您只需要变量的类型。
因为当我在我的程序中做同样的事情时,GCC给了我一个错误。
在您的情况下,检查您是否包含适用于Unix套接字的标头:
#include <sys/socket.h>
#include <sys/un.h>