pcap_list_datalinks.3pcap man page
pcap_list_datalinks, pcap_free_datalinks — get a list of link-layer header types supported by a capture device, and free that list
#include <pcap/pcap.h> int pcap_list_datalinks(pcap_t *p, int **dlt_buf); void pcap_free_datalinks(int *dlt_list);
pcap_list_datalinks() is used to get a list of the supported link-layer header types of the interface associated with the pcap descriptor. pcap_list_datalinks() allocates an array to hold the list and sets *dlt_buf to point to that array.
The caller is responsible for freeing the array with pcap_free_datalinks(), which frees the list of link-layer header types pointed to by dlt_list.
It must not be called on a pcap descriptor created by pcap_create() that has not yet been activated by pcap_activate().
pcap_list_datalinks() returns the number of link-layer header types in the array on success, PCAP_ERROR_NOT_ACTIVATED if called on a capture handle that has been created but not activated, and PCAP_ERROR (-1) on other errors. If PCAP_ERROR is returned, pcap_geterr() or pcap_perror() may be called with p as an argument to fetch or display the error text.
pcap(3PCAP), pcap_geterr(3PCAP), pcap_datalink_val_to_name(3PCAP), pcap-linktype(7)