1. ホーム
  2. c

[解決済み] unix ソケットエラー 14: EFAULT (不正なアドレス)

2022-02-28 20:25:21

質問

とても簡単な質問なのですが、週末中ずっと答えを見つけることができませんでした。私は sendto() 関数がエラーコード14:EFAULTを返します。マニュアルページには次のように記述されています。

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

これは、私が指定しているIPアドレスのことを言っているのだと納得していたのですが、今は、もしかしたら メモリ これに関する説明がどこにもないのですが、どなたか解決していただけませんか?

解決方法は?

EFAULT に渡された引数のメモリアドレスが、その引数に一致しない場合、この現象が発生します。 sendto (より一般的にはシステムコール)が無効であることを示します。これは、ある種の SIGSEGV を、カーネルの土地で、あなたのシステムコールに関して、使用することができます。例えば、NULLや無効なバッファポインタを渡した場合(読み込み、書き込み、送信、受信...)、次のようになります。

参照 errno(3) , 送信(2) などなど... マニュアルページ

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