您的位置:首页 > 编程语言 > ASP

asprintf

2016-01-25 15:55 561 查看
函数原型:

int asprintf(char **strp, const char *fmt, ...);

功能:

asprintf()可以说是一个增强版的sprintf(),在不确定字符串的长度时,非常灵活方便,能够根据格式化的字符串长度,申请足够的内存空间。此外,使用完后,必须通过free()释放空间。不过,这是GNU扩展的C函数库,不是标准C函数库或者POSIX。

头文件:

asprintf.h

char *cli_command_name(struct cli_def *cli, struct cli_command *command)

{

char *name = cli->commandname;

char *o;

if (name) free(name);

if (!(name = calloc(1, 1)))

return NULL;

while (command)

{

o = name;

if (asprintf(&name, "%s%s%s", command->command, *o ? " " : "", o) == -1)

{

fprintf(stderr, "Couldn't allocate memory for command_name: %s", strerror(errno));

free(o);

return NULL;

}

command = command->parent;

free(o);

}

cli->commandname = name;

return name;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: