0

g++ のパラメーターを使用するときに、 にstrlcpyない (外部 API を呼び出す)を使用したいと考えています。string.h-std=c++0x

% g++ -std=c++0x foo.cpp
foo.cpp: In function 'int main(int, char**)':
foo.cpp:5:11: error: 'strlcpy' was not declared in this scope
% g++ foo.cpp
% cat foo.cpp
#include <string.h>

int main(int argc, char* argv[])
{
  const char src[] = "foo";
  char dest[1024] = { 0 };
  strlcpy(dest, src, sizeof(dest));
  return 0;
}

strlcpyとフラグを使用することは可能std=c++0xですか、それとも後でドロップする必要がありますか?

strlcpyさらに、機能があるように見えても、cygwin でマンページを見つけることができませんでした。ポインタはありますか?

Cygwinでgcc 4.7.2を使用しています。

4

1 に答える 1

0

ウィキペディアの引用: strlcpy に対する批判

より人気のある strlcat と strlcpy は、C 文字列の使用を促進するため、解決するよりも多くの問題を引き起こすという理由で批判されています。したがって、それらは OpenBSD、FreeBSD、NetBSD、Solaris、Mac OS X、QNX に実装されており、Linux カーネルの内部にも実装されていますが、GNU C ライブラリ (Linux のソフトウェアで使用される) には含まれていません。

于 2013-01-25T09:55:04.727 に答える