一、argz_append函数
- 函数原型:error_t argz_append(char ** argz,size_t * argz_len,const char * buf,size_t buf_len);
- 头文件:#include <argz.h>
- 返回值:0:成功 ENOMEM:空间不足
- 功能:在(* argz,* argz_len)之后追加argz向量(buf,buf_len)并更新* argz和 * argz_len。(因此,* argz_len将被buf_len增加。),argz后增加buf,增加的长度为buflen。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/time.h>
#include <argz.h>
int main(void)
{
size_t len;
char *buff1 = malloc(100);
char *buff2 = "zhang:tao";
int data = ':';
memset(buff1,0,100);
memset(buff1,'s',10);
len = strlen(buff1);
argz_append(&buff1,&(len),buff2,6);
printf("%s %d %s \n",__func__,__LINE__,buff1);
printf("%s %d %d \n",__func__,__LINE__,len);
free(buff1);
return 0;
}
结果如下所示:
二、argz_count函数
- 函数原型:size_t argz_count(const char * argz,size_t argz_len);
- 头文件:#include <argz.h>
- 返回值:返回字符串中\0的个数
- 功能:计算字符串的数量,即(argz,argz_len)中的空字节数('\ 0' )
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/time.h>
#include <argz.h>
int main(void)
{
size_t len;
char *buff1 = malloc(100);
char *buff2 = "zhang0tao0helloworld";
char str[10] = {'1','\0','5','\0','4','\0','3','\0','2','\0',};
int i = 0;
for(i=0;i<10;i++){
buff1[i] = str[i];
}
len = argz_count(buff1,10);
printf("%s %d %d \n",__func__,__LINE__,len);
free(buff1);
return 0;
}
结果为: