0

memcpy を使用して、ある場所から別の場所にファイルをコピーしようとしています。

また、ソースとして提供するファイル パスが存在しないと、毎回クラッシュします。

これは正しい動作ですか? はいの場合、どうすればクラッシュを防ぐことができますか?

4

2 に答える 2

8

memcpyの目的はファイルをコピーすることではなく、メモリのチャンクをある場所から別の場所にコピーすることです。プラットフォームによっては、ディレクトリ間でファイルをコピーするためのより良い方法があると確信しています。

于 2012-04-04T06:52:09.397 に答える
2

ダメダメダメ!聖なる記憶の名の下に何をしているのですか?memcpyメモリ転送に厳密に使用されます。たとえば、グラフィックス アプリケーションに多数の頂点があり、実際にはポインターを渡さずに頂点バッファーに渡したいとします。そうすれば、頂点を表すバイト配列全体をコピーし、それ以降は、基になる API の問題です。それが意図された使用法です。また、使い方にも気をつけてください。コピーするバイト数を指定します。正確であることを確認してください。最下位レベルでは、型のようなものはありません。与えすぎると、大混乱を引き起こします。他の変数に「属する」バイトに引き裂かれます。運が良ければ、そのようなコードはアプリケーションを強制終了します。そうでない場合は、引き続き機能します。

ファイルの読み取り/書き込み/コピーについては、標準の C/C++ ファイルの入力/出力を参照する必要があります (または、回答の 1 つが示唆するように、基盤となるプラットフォームの礼儀でより洗練された方法を使用します)。オンラインにはたくさんのリソースがあるので、ここで一からやり直すことはしません。何が目的かをよりよく理解していただければ幸いですmemcpy

于 2012-04-04T07:08:16.153 に答える