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

📄 dynscat.c

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 C
字号:
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include "Strn.h"

/*VARARGS*/
char *
Dynscat(char **dst, ...)
{
	va_list ap;
	const char *src;
	char *newdst, *dcp;
	size_t curLen, catLen, srcLen;

	if (dst == (char **) 0)
		return NULL;

	catLen = 0;
	va_start(ap, dst);
	src = va_arg(ap, char *);
	while (src != NULL) {
		catLen += strlen(src);
		src = va_arg(ap, char *);
	}
	va_end(ap);

	if ((*dst == NULL) || (**dst == '\0'))
		curLen = 0;
	else
		curLen = strlen(*dst);

	if (*dst == NULL)
		newdst = malloc(curLen + catLen + 2);
	else
		newdst = realloc(*dst, curLen + catLen + 2);
	if (newdst == NULL)
		return NULL;

	dcp = newdst + curLen;
	va_start(ap, dst);
	src = va_arg(ap, char *);
	while (src != NULL) {
		srcLen = strlen(src);
		memcpy(dcp, src, srcLen);
		dcp += srcLen;
		src = va_arg(ap, char *);
	}
	va_end(ap);
	*dcp = '\0';

	*dst = newdst;
	return (newdst);
}	/* Dynscat */

⌨️ 快捷键说明

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