If you need to get the mac address of certain wifi interface using C program, you can use the below program. This program should work on any Linux as well as Android platforms.
$ vim read_wifi_mac.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// here our wifi interface was shown as wlp3s0, in your case it may be
// wlan0 , hence you need to use /sys/class/net/wlan0/address instead
// of /sys/class/net/wlp3s0/address
char *read_mac_address() {
char *t_mac = (char *) malloc(32);
char *mac = (char *) malloc(32);
FILE *fp = NULL;
fp = popen("cat /sys/class/net/wlp3s0/address", "r");
if (fp == NULL) {
printf("Failed to get mac address using command\n" );
return NULL;
}
fgets(t_mac, 32, fp);
strncpy(mac, t_mac, strlen(t_mac) - 1); //remove /n from mac read
pclose(fp);
free(t_mac);
return mac;
}
int main(int argc, char **argv) {
char *mac = NULL;
mac = read_mac_address();
printf("%s\n", mac);
}
Now, you can compile and run the program as,
$ gcc -o read_wifi_mac read_wifi_mac.c
$ ./read_wifi_mac