Man page - strndup(3)

Packages contains this manual

Available languages:

en fr es pl ja ro de

Manual

STRDUP

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

名 前

strdup, strndup, strdupa, strndupa - 文 字 列 を 複 製 す る

書 式

#include <string.h>

char *strdup(const char * s );

char *strndup(const char * s , size_t n );
char *strdupa(const char *
s );
char *strndupa(const char *
s , size_t n );

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 ( feature_test_macros (7) 参 照 ):

strdup ():

_XOPEN_SOURCE >= 500
|| /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
|| /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

strndup ():

glibc 2.10 以 降 :

_POSIX_C_SOURCE >= 200809L

glibc 2.10 よ り 前 :

_GNU_SOURCE

strdupa (), strndupa (): _GNU_SOURCE

説 明

strdup () 関 数 は 、 文 字 列 s の 複 製 で あ る 新 し い 文 字 列 へ の ポ イ ン タ ー を 返 す 。 新 し い 文 字 列 の た め の メ モ リ ー は malloc (3) で 得 て い る 。 そ し て 、 free (3) で 解 放 す る こ と が で き る 。

strndup () 関 数 は 同 様 で あ る が 、 最 大 で n バ イ ト を 複 製 す る 。 s n よ り も 長 い 場 合 、 n バ イ ト だ け が 複 製 さ れ 、 終 端 の ヌ ル バ イ ト ('\0')) が 追 加 さ れ る 。

strdupa () と strndupa () も 同 様 だ が 、 バ ッ フ ァ ー の 確 保 に alloca (3) を 使 用 す る 点 が 異 な る 。 こ れ ら が 使 用 で き る の は GNU GCC ツ ー ル 群 を 使 う 場 合 だ け で あ り 、 alloca (3) で 説 明 さ れ て い る の と 同 じ 制 限 が あ る 。

返 り 値

成 功 す る と 、 strdup () 関 数 は 複 製 さ れ た 文 字 列 へ の ポ イ ン タ ー を 返 す 。 十 分 な メ モ リ ー が 確 保 で き な か っ た 場 合 に は 、 NULL を 返 し 、 errno に エ ラ ー の 原 因 を 示 す 値 を 設 定 す る 。

エ ラ ー

ENOMEM

複 製 さ れ た 文 字 列 を 割 り 当 て る 十 分 な メ モ リ ー が 確 保 で き な か っ た 。

属 性

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

Image grohtml-44407-1.png

準 拠

strdup () は SVr4, 4.3BSD, POSIX.1-2001 準 拠 で あ る 。 strndup () は POSIX.1-2008 準 拠 で あ る 。 strdupa (), strndupa () は GNU 拡 張 で あ る 。

関 連 項 目

alloca (3), calloc (3), free (3), malloc (3), realloc (3), string (3), wcsdup (3)

こ の 文 書 に つ い て

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