strdup()
私が OS X でよく使っていた関数が、ANSI C の一部ではなく、POSIX の一部であることに最近気付きました。すべてのコードを書き直したくないので、独自のstrdup()
関数を作成するだけだと思います。それほど難しいことではありませmalloc()
んstrcpy()
。とにかく、私は関数を持っていますが、この関数を書いて自分のコードにリンクし、それが libc に既に存在する場合はどうすればよいでしょうか? リンカまたはコンパイラを使用すると、基本的に独自のバージョンの関数を定義できますか? または別の名前を付ける必要がありますか? 同じ名前を再利用する方法があれば、非常に便利ですstrcpy()
。ユーザーの libc に存在する場合はそれを使用できますが、libc に存在しない場合は、代わりに私のバージョンを使用できます。コードはほとんどありません。可能な限り変更します。
短いバージョン:
a) 組み込み関数と同じ名前で独自の関数を作成するとどうなりますか?
strdup()
b)すべてのコードを not use に書き換えずに、プラットフォームで悪いことが起こらないようにするにはどうすればよいstrdup()
ですか? これは少し面倒です。