MES3.0はLinuxの下位互換性であり、MES3.0のユーザープログラムは原則としてLinuxでも同じソースコードで動作します。
以下、MES3.0で動作確認されたLinuxとソースコード互換のゲートウェイ設定の例です。

#include <stdio.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/route.h>

int main(int argc, char **argv) {
	int			sk, ret;
	struct rtentry		stuRTEntry;
	struct sockaddr_in	stcAddr;

	sk = socket(AF_INET, SOCK_DGRAM, 0);
	memset(&stuRTEntry, 0x00, sizeof(stuRTEntry));

	stcAddr.sin_family = AF_INET;
	stcAddr.sin_port = 0;
	stcAddr.sin_addr.s_addr = inet_addr(argv[1]);
	memcpy(&stuRTEntry.rt_gateway, (char*)&stcAddr, sizeof(stcAddr));

	stuRTEntry.rt_dev = "ne0";
	stuRTEntry.rt_metric = 100;
	stuRTEntry.rt_flags = (RTF_UP | RTF_GATEWAY);

	stcAddr.sin_addr.s_addr = INADDR_ANY;
	memcpy(&stuRTEntry.rt_dst, (char*)&stcAddr, sizeof(stcAddr));
	memcpy(&stuRTEntry.rt_genmask, (char*)&stcAddr, sizeof(stcAddr));

	ret = ioctl(sk, SIOCADDRT, &stuRTEntry);
//	ret = ioctl(sk, SIOCDELRT, &stuRTEntry);
	if(ret == -1) printf("Route error\n");

	close(sk);
	return 0;
}