⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.c

📁 一种操作系统源码核
💻 C
字号:
#include "page1.h"
ULONG Dec_atol(PXCHAR pBuf)
{
	DCHAR iTmp;
	XLONG lTotal;

	lTotal = 0;
	while (1)
	{
		iTmp = *pBuf ++;
		if (iTmp < '0' || iTmp > '9')
			break;
		lTotal = 10*lTotal + (iTmp - '0');
	}
	return lTotal;
}

ULONG Dec_atol2(UCHAR iLength, PXCHAR pBuf)
{
	DCHAR i, iTmp;
	XLONG lTotal;

	lTotal = 0;
	for (i = 0; i < iLength; i ++)
	{
		iTmp = pBuf[i];
		if (iTmp < '0' || iTmp > '9')
			break;
		lTotal = 10*lTotal + (iTmp - '0');
	}
	return lTotal;
}
 /*
UCHAR Dec_atoi(PXCHAR pBuf)
{
	DCHAR i, iTmp, iTotal;

	iTotal = 0;
	for (i = 0; i < 3; i ++)
	{
		iTmp = pBuf[i];
		if (iTmp < '0' || iTmp > '9')
			break;
		iTotal = 10*iTotal + (iTmp - '0');
	}
	return iTotal;
}
 */ 
BOOLEAN String2IP(UCHAR iLength, PXCHAR pString, PXCHAR pIp)
{
	DCHAR i, j, k;
	XLONG lAddr;

	i = 0;
	k = 0;
	while (i < iLength)
	{
		j = i;
		while (pString[j] >= '0' && pString[j] <= '9')
			j ++;
		lAddr = Dec_atol2((UCHAR)(j - i), (PXCHAR)(pString + i));
		if (lAddr >= 256)
			return FALSE;
		if (k < IP_ALEN)
			pIp[k ++] = (UCHAR)lAddr;
		else
			return FALSE;
		i = j + 1;
	}

	if (k != IP_ALEN)
		return FALSE;
	return TRUE;
}
BOOLEAN String2MAC(UCHAR iLength, PXCHAR pString, PXCHAR pIp)
{
	DCHAR i, j, k;
	XLONG lAddr;

	i = 0;
	k = 0;
	while (i < iLength)
	{
		j = i;
		while (pString[j] >= '0' && pString[j] <= '9')
			j ++;
		lAddr = Dec_atol2((UCHAR)(j - i), (PXCHAR)(pString + i));
		if (lAddr >= 256)
			return FALSE;
		if (k < HW_ALEN)
			pIp[k ++] = (UCHAR)lAddr;
		else
			return FALSE;
		i = j + 1;
	}

	if (k != HW_ALEN)
		return FALSE;
	return TRUE;
}


void IP2String(PXCHAR pIP, PXCHAR pString)
{
	XCHAR pTemp[16];
	DCHAR i;

	pString[0] = 0;
	for (i = 0; i < IP_ALEN; i ++)
	{
		p_itoa(pIP[i], pTemp, 10);
		p_strcat_x2x(pString, pTemp);
		if (i < (IP_ALEN -1))
			p_strcat_c2x(pString, (PCCHAR)".");
	}
}







⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -