copyinstr カーネル・サービス
目的
文字ストリング (終了ヌル文字を含む) をユーザーからカーネル・スペースにコピーします。
構文
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h>
32 ビット・カーネルでは、 コピー・インスタンス カーネル・サービスの構文は次のとおりです。
int copyinstr (from, to, max, actual)
caddr_t from;
caddr_t to;
uint max;
uint *actual;
64 ビット・カーネルでは、 コピー・インスタンス サブルーチンの構文は次のとおりです。
int copyinstr (from, to, max, actual)
void *from;
void *to;
size_t max;
size_t *actual;
パラメーター
| 項目 | 説明 |
|---|---|
| から | コピーする文字ストリングのアドレスを指定します。 |
| TO | 文字ストリングのコピー先のアドレスを指定します。 |
| MAX | コピーする文字数を指定します。 |
| 実績 | 参照によって渡され、コピーされた実際の文字数で コピー・インスタンス サービスによって更新されるパラメーターを指定します。 |
説明
コピー・インスタンス カーネル・サービスにより、ユーザーは文字データをある場所から別の場所にコピーすることができます。 ソース・ロケーションは、ユーザー・スペース内にあるか、呼び出し元がカーネル・プロセスの場合はカーネル・スペース内にある必要があります。 宛先はカーネル・スペース内にあります。
実行環境
コピー・インスタンス カーネル・サービスは、 プロセス環境 からのみ呼び出すことができます。
戻り値
| 項目 | 説明 |
|---|---|
| 0 | 操作が成功したことを示します。 |
| E2BIG | コピーを完了するための十分なスペースがないことを示します。 |
| EIO | データの参照中に永続入出力エラーが発生したことを示します。 |
| ENOSPC | ファイル・システムまたはページング・スペースが不十分であることを示します。 |
| EFAULT | ユーザーがデータにアクセスするための十分な権限を持っていないか、 ユーザー・アドレス パラメーターに指定されたアドレスが無効であることを示します。 |