web-dev-qa-db-ja.com

UNIXソケットエラー14:EFAULT(不正なアドレス)

非常に簡単な質問がありますが、週末を通して答えを見つけることができませんでした。 sendto()関数を使用していますが、エラーコード14:EFAULTが返されます。マニュアルページでは、次のように説明しています。

"An invalid user space address was specified for an argument."

これは私が指定しているIPアドレスについて話していると確信していましたが、参照しているメッセージバッファのmemoryアドレスである可能性があります-説明が見つかりませんこれはどこでも、誰かがこれを片付けることができますか?

ありがとう、J

16
aktungmak

EFAULTsendto(またはより一般的にはシステムコール)に渡された引数のメモリアドレスが無効な場合に発生します。システムコールに関しては、カーネルランドの一種のSIGSEGVと考えてください。たとえば、nullまたは無効なバッファポインタ(読み取り、書き込み、送信、受信など)を渡すと、次のようになります。

errno(3)sendto(2) などのマニュアルページを参照してください。

EFAULTはIPアドレスとはまったく関係ありません。

27