Man page - argz_stringify(3)

Packages contains this manual

Available languages:

en fr ja ro

Manual

ARGZ_ADD

名 前
書 式
説 明
返 り 値
属 性
準 拠
バ グ
関 連 項 目
こ の 文 書 に つ い て

名 前

argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify - argz リ ス ト を 操 作 す る た め の 関 数 群

書 式

#include <argz.h>

error_t argz_add(char ** argz , size_t * argz_len , const char * str );

error_t argz_add_sep(char ** argz , size_t * argz_len ,
const char *
str , int delim );

error_t argz_append(char ** argz , size_t * argz_len ,
const char *
buf , size_t buf_len );

size_t argz_count(const char * argz , size_t argz_len );

error_t argz_create(char * const argv [], char ** argz ,
size_t *
argz_len );

error_t argz_create_sep(const char * str , int sep , char ** argz ,
size_t *
argz_len );

void argz_delete(char ** argz , size_t * argz_len , char * entry );

void argz_extract(const char * argz , size_t argz_len , char ** argv );

error_t argz_insert(char ** argz , size_t * argz_len , char * before ,
const char *
entry );

char *argz_next(const char * argz , size_t argz_len , const char * entry );

error_t argz_replace(char ** argz , size_t * argz_len , const char * str ,
const char *
with , unsigned int * replace_count );

void argz_stringify(char * argz , size_t len , int sep );

説 明

こ れ ら の 関 数 は glibc 固 有 で あ る 。

argz vector は 長 さ 情 報 付 き の 文 字 バ ッ フ ァ ー へ の ポ イ ン タ ー で あ る 。 文 字 バ ッ フ ァ ー で は 、 複 数 の 文 字 列 が ヌ ル バ イ ト ('\0') で 区 切 ら れ て お り 、 文 字 列 の 配 列 と し て 解 釈 さ れ る よ う に な っ て い る 。 長 さ が 0 で な い 場 合 、 バ ッ フ ァ ー の 最 後 の バ イ ト は ヌ ル バ イ ト で な け れ ば な ら な い 。

こ れ ら の 関 数 は argz vector を 操 作 す る た め の も の で あ る 。 ペ ア (NULL,0) は argz vector で あ り 、 逆 に 言 え ば 長 さ 0 の argz vectorは ヌ ル ポ イ ン タ ー を 持 た な け れ ば な ら な い 。 空 で な い argz vector の 割 り 当 て は malloc (3) を 使 っ て 行 わ れ る 。 し た が っ て 、 argz vector を 解 放 す る の に free (3) を 使 う こ と が で き る 。

argz_add () は 、 文 字 列 str を 配 列 *argz の 末 尾 に 追 加 し 、 *argz *argz_len を 更 新 す る 。

argz_add_sep () も 同 様 の 動 作 を す る が 、 区 切 り 文 字 delim に し た が っ て 文 字 列 str を 複 数 の 文 字 列 に 分 割 す る 点 が 異 な る 。 例 え ば 、 区 切 り 文 字 ':' を 指 定 し て 、 UNIX サ ー チ パ ス に 対 し て こ の 関 数 を 使 う こ と が で き る だ ろ う 。

argz_append () は argz vector ( buf , buf_len ) の 後 ろ に ( *argz , *argz_len ) を 付 け 加 え 、 *argz *argz_len を 更 新 す る 。 (し た が っ て 、 *argz_len buf_len だ け 増 加 す る 。 )

argz_count () は ( argz , argz_len ) 内 の 文 字 列 の 数 を 数 え る 。 実 際 に は ヌ ル バ イ ト ('\0') の 数 を 数 え て い る 。

argz_create () は 、 UNIX 流 の 引 数 ベ ク ト ル で あ る ( (char *) 0 で 終 端 さ れ る ) argv を 、 argz vector ( *argz , *argz_len ) に 変 換 す る 。

argz_create_sep () は 、 ヌ ル 終 端 さ れ た 文 字 列 str を 区 切 り 文 字 sep が 現 れ る 毎 に 分 割 し な が ら 、 argz vector (* argz , *argz_len ) に 変 換 す る 。

argz_delete () は 、 entry で 指 し 示 さ れ た 文 字 列 を argz vector ( *argz , *argz_len ) か ら 削 除 し 、 *argz *argz_len を 更 新 す る 。

argz_extract () は argz_create () の 反 対 の 操 作 を 行 う 。 argz vector ( argz , argz_len ) を 調 べ 、 argv か ら 始 ま る 配 列 を サ ブ 文 字 列 へ の ポ イ ン タ ー で 埋 め て い き 、 一 番 最 後 に NULL を 入 れ て 、 UNIX 流 の argv ベ ク ト ル を 作 成 す る 。 配 列 argv argz_count ( argz , argz_len ) + 1 個 の ポ イ ン タ ー を 収 容 で き る 空 間 を 持 っ て い な け れ ば な ら な い 。

argz_insert () は argz_delete () の 反 対 の 操 作 を 行 う 。 argz vector ( *argz , *argz_len ) の 位 置 before に 引 数 entry を 挿 入 し 、 *argz *argz_len を 更 新 す る 。 before が NULL の 場 合 、 entry は 末 尾 に 挿 入 さ れ る 。

argz_next () は argz vector を 順 番 に 調 べ る た め の 関 数 で あ る 。 entry が NULL の 場 合 、 最 初 の エ ン ト リ ー を 返 す 。 そ う で な い 場 合 、 次 の エ ン ト リ ー を 返 す 。 次 の エ ン ト リ ー が な い 場 合 、 NULL を 返 す 。

argz_replace () は 、 str を す べ て with で 置 き 換 え る (必 要 に 応 じ て argz の 再 割 り 当 て を 行 う )。 replace_count が NULL で な い 場 合 、 *replace_count を 置 き 換 え を 行 っ た 数 だ け 増 や す 。

argz_stringify () は argz_create_sep () の 反 対 の 操 作 を 行 う 。 末 尾 の ヌ ル バ イ ト 以 外 の 全 て の ヌ ル バ イ ト ('\0') を sep で 置 き 換 え て 、 argz vector を 通 常 の 文 字 列 に 変 換 す る 。

返 り 値

メ モ リ ー 割 り 当 て を 行 う argz 関 数 群 は す べ て error_t 型 (integer 型 ) の 返 り 値 を 持 つ 。 成 功 し た 場 合 は 0 を 返 し 、 割 り 当 て エ ラ ー が 発 生 し た 場 合 は ENOMEM を 返 す 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-25282-1.png

準 拠

こ れ ら の 関 数 は GNU に よ る 拡 張 で あ る 。

バ グ

ヌ ル バ イ ト で 終 端 さ れ て い な い argz vector を 使 用 し た 場 合 、 segmentation fault を 起 こ す か も し れ な い 。

関 連 項 目

envz_add (3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。