91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

解決Android下getifaddrs和freeifaddrs undefined reference 的問題,即android下的c實現

資源截圖

代碼片段和文件信息

/*
Copyright?(c)?2013?Kenneth?MacKay
All?rights?reserved.

Redistribution?and?use?in?source?and?binary?forms?with?or?without?modification
are?permitted?provided?that?the?following?conditions?are?met:
?*?Redistributions?of?source?code?must?retain?the?above?copyright?notice?this
???list?of?conditions?and?the?following?disclaimer.
?*?Redistributions?in?binary?form?must?reproduce?the?above?copyright?notice
???this?list?of?conditions?and?the?following?disclaimer?in?the?documentation
???and/or?other?materials?provided?with?the?distribution.

THIS?SOFTWARE?IS?PROVIDED?BY?THE?COPYRIGHT?HOLDERS?AND?CONTRIBUTORS?“AS?IS“?AND
ANY?EXPRESS?OR?IMPLIED?WARRANTIES?INCLUDING?BUT?NOT?LIMITED?TO?THE?IMPLIED
WARRANTIES?OF?MERCHANTABILITY?AND?FITNESS?FOR?A?PARTICULAR?PURPOSE?ARE
DISCLAIMED.?IN?NO?EVENT?SHALL?THE?COPYRIGHT?HOLDER?OR?CONTRIBUTORS?BE?LIABLE?FOR
ANY?DIRECT?INDIRECT?INCIDENTAL?SPECIAL?EXEMPLARY?OR?CONSEQUENTIAL?DAMAGES
(INCLUDING?BUT?NOT?LIMITED?TO?PROCUREMENT?OF?SUBSTITUTE?GOODS?OR?SERVICES;
LOSS?OF?USE?DATA?OR?PROFITS;?OR?BUSINESS?INTERRUPTION)?HOWEVER?CAUSED?AND?ON
ANY?THEORY?OF?LIABILITY?WHETHER?IN?CONTRACT?STRICT?LIABILITY?OR?TORT
(INCLUDING?NEGLIGENCE?OR?OTHERWISE)?ARISING?IN?ANY?WAY?OUT?OF?THE?USE?OF?THIS
SOFTWARE?EVEN?IF?ADVISED?OF?THE?POSSIBILITY?OF?SUCH?DAMAGE.
*/

#include?“ifaddrs.h“

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?nk.h>
#include?nk.h>

typedef?struct?NetlinkList
{
????struct?NetlinkList?*m_next;
????struct?nlmsghdr?*m_data;
????unsigned?int?m_size;
}?NetlinkList;

static?int?netlink_socket(void)
{
????int?l_socket?=?socket(PF_NETlink?SOCK_RAW?NETlink_ROUTE);
????if(l_socket?????{
????????return?-1;
????}
????
????struct?sockaddr_nl?l_addr;
????memset(&l_addr?0?sizeof(l_addr));
????l_addr.nl_family?=?AF_NETlink;
????if(bind(l_socket?(struct?sockaddr?*)&l_addr?sizeof(l_addr))?????{
????????close(l_socket);
????????return?-1;
????}
????
????return?l_socket;
}

static?int?netlink_send(int?p_socket?int?p_request)
{
????char?l_buffer[NLMSG_ALIGN(sizeof(struct?nlmsghdr))?+?NLMSG_ALIGN(sizeof(struct?rtgenmsg))];
????memset(l_buffer?0?sizeof(l_buffer));
????struct?nlmsghdr?*l_hdr?=?(struct?nlmsghdr?*)l_buffer;
????struct?rtgenmsg?*l_msg?=?(struct?rtgenmsg?*)NLMSG_DATA(l_hdr);
????
????l_hdr->nlmsg_len?=?NLMSG_LENGTH(sizeof(*l_msg));
????l_hdr->nlmsg_type?=?p_request;
????l_hdr->nlmsg_flags?=?NLM_F_ROOT?|?NLM_F_MATCH?|?NLM_F_REQUEST;
????l_hdr->nlmsg_pid?=?0;
????l_hdr->nlmsg_seq?=?p_socket;
????l_msg->rtgen_family?=?AF_UNSPEC;
????
????struct?sockaddr_nl?l_addr;
????memset(&l_addr?0?sizeof(l_addr));
????l_addr.nl_family?=?AF_NETlink;
????return?(sendto(p_socket?l_hdr?l_hdr->nlmsg_len?0?(struct?sockaddr?*)&l_addr?sizeof(l_addr)));
}

static?int?netlink_recv(int?p_socket?void?*p_buffer?size_t?p_len)
{
????struct?msghdr?l_msg;
????struct?iovec?l_iov?=?{?p

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-07-06?03:19??android-ifaddrs-master\
?????文件?????????235??2013-07-06?03:19??android-ifaddrs-master\README.md
?????文件???????18711??2013-07-06?03:19??android-ifaddrs-master\ifaddrs.c
?????文件????????1853??2013-07-06?03:19??android-ifaddrs-master\ifaddrs.h

評論

共有 條評論