MES3.0はLinuxの下位互換性であり、MES3.0のユーザープログラムは原則としてLinuxでも同じソースコードで動作します。
以下、MES3.0で動作確認されたLinuxとソースコード互換のARPテーブルへの追加の例です。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <net/if.h>
#include <net/if_arp.h>

int main(int argc, char *argv[]) {
	int			soc, i;
	struct arpreq		arpreq;
	struct sockaddr_in	*sin;
	unsigned char		*eap, *ptr;

	if (argc < 3) return -1;

	memset(&arpreq, 0, sizeof(struct arpreq));
	eap = (unsigned char *)arpreq.arp_ha.sa_data;
	ptr = argv[2];
	for(i = 0;i < 6;i++) {
		ptr[2] = 0;
		eap[i] = (char)strtol(ptr, 0, 16);
		ptr += 3;
	}
	sin = (struct sockaddr_in *)&arpreq.arp_pa;
	sin->sin_family = AF_INET;
	sin->sin_addr.s_addr = inet_addr(argv[1]);
	arpreq.arp_flags = ATF_PERM | ATF_COM;
	strncpy(arpreq.arp_dev, "enp2s0", 15);
	
	if((soc=socket(AF_INET, SOCK_DGRAM, 0))<0){
		fprintf(stderr, "[-]ERRPR: Socket_Creation_Failed\n");
		return -1;
	}
	if(ioctl(soc, SIOCSARP, &arpreq) < 0){
		fprintf(stderr, "[-]ERROR: SIOCSARP\n");
		return -1;
	}
	close(soc);
	return 0;
}