2011-02-11 49 views
14

Đây là một câu hỏi đơn giản. Ý nghĩa của chữ cái "s" trong sin_family, sin_port, sin_addr và sin_zero là gì?"s" có nghĩa là gì trong cấu trúc?

struct sockaddr_in { 
    short int   sin_family; // Address family, AF_INET 
    unsigned short int sin_port; // Port number 
    struct in_addr  sin_addr; // Internet address 
    unsigned char  sin_zero[8]; // Same size as struct sockaddr 
}; 

Cảm ơn.

+2

có thể là cho * s * ockaddr? – Benoit

Trả lời

32

Điều này xuất phát từ Berkeley, trở lại khi LSD vẫn hợp pháp. Vì vậy, rất rõ ràng trong các lựa chọn đặt tên của họ:/

Tất cả đùa sang một bên, ngày này trở lại rất sớm K & R C nơi cấu trúc thành viên không có không gian tên riêng của họ. Mà yêu cầu bạn phải đưa ra tên riêng biệt cho các thành viên cấu trúc mà sẽ không va chạm với các định danh trong không gian tên chung. Đau đớn. Tiền tố các tên với tên viết tắt của tên cấu trúc là cách tiếp cận chung.

Vì vậy, "sockaddr_in" trở thành "tội lỗi".

Lưu ý cách thức enums vẫn có vấn đề này ngày hôm nay, không được giải quyết một cách không bình thường theo cùng một cách.

+0

Cảm ơn, nó là thuyết phục. BTW, LSD là gì? – smwikipedia

+7

Một loại thuốc tổng hợp cho phép duy trì chuyến bay không bền vững. http://en.wikipedia.org/wiki/Lsd –

+1

Cảm ơn các bạn, bây giờ tôi biết quá nhiều. :) – smwikipedia

5

"sin" là viết tắt của "Socket INternet" trong ngữ cảnh này.

6

sin được lặp đi lặp lại tên của cấu trúc sockaddr_in, ví dụ: S ocket TRÊN ternet.

Các vấn đề liên quan