1. ホーム
  2. c

[解決済み] <string.h>と<strings.h>の違いについて

2023-01-25 09:49:34

疑問点

私は、(少なくとも Mac OS X 上で) <string.h> ヘッダと <strings.h> ヘッダを作成します。 man 3 string を見ると、それぞれ異なる機能を含んでいることがわかります。これには何か理由があるのでしょうか?

どのように解決するのですか?

strings.hは、unixの進化の中でBSDブランチに由来しています。 その内容は POSIX によって標準化されていますが、そのほとんどはレガシーとしてマークされており、他の関数で簡単に置き換えることができます。

int    bcmp(const void *, const void *, size_t); /* LEGACY, see memcmp */
void   bcopy(const void *, void *, size_t); /* LEGACY, see memcpy, memmove */
void   bzero(void *, size_t); /* LEGACY, see memset */
int    ffs(int);
char  *index(const char *, int); /* LEGACY, see strchr */
char  *rindex(const char *, int); /* LEGACY, see strrchr */
int    strcasecmp(const char *, const char *);
int    strncasecmp(const char *, const char *, size_t);