2012-02-13 16 views
15

私は非常に簡単な質問がありますが、私は週末すべての回答を見つけることができませんでした。私はsendto()関数を使用しており、エラーコード14:EFAULTを返しています。私はこれは私が指定したIPアドレス話していたことを確信していたが、今はそれが参照していることをメッセージバッファのメモリアドレスであってもよい疑うunix socket error 14:EFAULT(悪いアドレス)

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

:manページには、としてそれを記述します - 私はどこでもこれについての説明を見つけることができません、誰もこれをクリアすることができますか?

おかげで、 J

+0

あなたがsendmsgに与えた 'const struct msghdr * message'引数の中には何かが無効です。詳細については、関連するコードを投稿してください。 – nos

答えて

24

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

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

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

+0

ああ大丈夫よ、家に帰ると私のバッファポインタをチェックして、それが修正されているかどうか確認しましょう! – aktungmak

+0

うん、それはそれをやった!私はいくつかのポインタが混乱していました、ありがとう! – aktungmak

関連する問題