Netlink user layerCodeAs follows:
# Include <Linux/Netlink. h> # include <sys/socket. h> int main () {struct sockaddr_nl src_addr; src_addr.nl_family = af_netlink; src_addr.nl_pid = getpid (); src_addr.nl_groups = 0; return 0 ;}
This is already completeProgramThe following error occurs during GCC Compilation:
# Gcc ccc. cin file encoded ded from CCC. c: 1:/usr/include/Linux/Netlink. h: 35: Error: Expected specifier-qualifier-list before 'sa _ family_t 'CCC. c: In function 'main': CCC. c: 9: Error: 'struct sockaddr_nl 'has no member named' NL _ family 'ccc. c: 10: Error: 'struct sockaddr_nl 'has no member named 'nl _ PID' CCC. c: 11: Error: 'struct sockaddr_nl 'has no member named' NL _ groups'
Why?
Of course, the struct sockaddr_nl does not have the nl_family member as prompted by an error. The problem lies in the include sequence of the header file!
# Include <Linux/Netlink. h> cannot be placed before # include <sys/socket. h>