文档章节

argz_count()函数

微笑不知慌张
 微笑不知慌张
发布于 2015/10/07 00:37
字数 217
阅读 12
收藏 0

函数位于glibc源码中的../glibc-version/string/argz-cout.c中,其作用统计一个argz vector中元素(字符串)的个数。

argz vector是存储在连续空间的一维字符数组,元素(字符串)彼此之间以空字符(\0)进行分隔。

函数声明如下:

//argz.h
/* Returns the number of strings in ARGZ.  */
extern size_t __argz_count (__const char *__argz, size_t __len)
     __THROW __attribute_pure__;
extern size_t argz_count (__const char *__argz, size_t __len)
     __THROW __attribute_pure__;

函数的实现如下:

/* Returns the number of strings in ARGZ.  */
size_t
__argz_count (const char *argz, size_t len)
{
    size_t count = 0;
    while (len > 0)
    {
        size_t part_len = strlen(argz);
        argz += part_len + 1;
        len -= part_len + 1;
        count++;
    }
    return count;
}
libc_hidden_def (__argz_count)
weak_alias (__argz_count, argz_count)

由于argz中字符串之间以\0分隔的特性,所以可以使用strlen(argz)测算出每个字符串的长度,然后以该长度为增量移动argz的首地址指针,移动的次数即为该argz vector中元素的个数。

© 著作权归作者所有

微笑不知慌张
粉丝 1
博文 7
码字总数 3082
作品 0
西安
私信 提问
argz_extract()函数,argz_stringify()函数

函数分别位于glibc源码中的../glibc-version/string/argz-extract.c和../glibc-version/string/argz-stringify.c中。 函数声明如下: // argz.h /* Puts pointers to each string in ARGZ in......

微笑不知慌张
2015/10/07
52
0
argz_create_sep函数

函数位于glibc源码中的../glibc-version/string/argz-ctsep.c中,其作用是将字符串以指定的字符进行分割,指定字符的位置替换成空字符串(0),使整个字符串形成一个argz vector。 argz vec...

微笑不知慌张
2015/09/29
77
0
argz_create函数

函数位于glibc源码中的../glibc-version/string/argz-create.c中,其作用是将Unix-style的参数数组argv转换成一个argz vector。 argz vector是存储在连续空间的一维字符数组,彼此之间以空字...

微笑不知慌张
2015/09/29
128
0
TSQL 聚合函数忽略NULL值

max,min,sum,avg聚合函数会忽略null值,但不代表聚合函数不返回null值,如果表为空表,或聚合列都是null,则返回null。count 聚合函数忽略null值,如果聚合列都是null或表为空表,则返回0。 ...

长征6号
2016/09/14
0
0
动态装载、调用DLL中的非托管函数

(二) 动态装载、调用DLL中的非托管函数 在上面已经说明了如何用DllImport调用DLL中的非托管函数,但是这个是全局的函数,假若DLL中的非托管函数有一个静态变量S,每次调用这个函数的时候,静...

Yong_Luo
2010/09/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

将博客搬至CSDN

https://blog.csdn.net/qq_38157006

Marhal
19分钟前
1
0
unicode Java中求字符串长度length()和codePointCount()的区别

在计算字符串长度时,Java的两种方法length()和codePointCount()一度让我困惑,运行书上例子得到的长度值是相等的,那为什么要设定两个方法呢? 对于普通字符串,这两种方法得到的值是一样的...

泉天下
19分钟前
2
0
uin-app 一、学习理由

选择uni-app 理由 别人的理由 1. 5+ 有HTML5+和Native.js技术,HTML5+包含常用的跨平台的几百个API,能满足常规开发需求,而Native.js把40w原生api映 射成js对象,这样js可以直接调原生。HTM...

轻轻的往前走
21分钟前
1
0
方括号及其在命令行中的不同用法介绍

通配 方括号最简单的用法就是通配。你可能在知道“ Globbing”这个概念之前就已经通过通配来匹配内容了,列出具有相同特征的多个文件就是一个很常见的场景,例如列出所有 JPEG 文件: ls *.j...

Linux就该这么学
27分钟前
2
0
vecty 基础

gopherjs 是把 go 编译为 js 的工具。 vecty 是基于 gopherjs 的一种类似 React 的开发框架。 安装 gopherjs 和 vecty go get -u github.com/gopherjs/gopherjsgo get -u github.com/gopher......

electricface
28分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部