21

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

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

これは私が指定していたIPアドレスについて話していると確信していましたが、それが参照しているメッセージバッファのメモリアドレスである可能性があると思います.上?

4

3 に答える 3

32

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

errno(3)sendto(2)などの man ページを参照してください。

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

于 2012-02-13T13:05:48.390 に答える