私が使用しているライブラリでBad address、readv.
エラーの正確な原因は何ですか?それは目的地ですか、それともソースですか?segfault代わりにそうしないのはなぜですか?
Bad Addressは のエラー メッセージです。http://linux.die.net/man/2/readEFAULTでは、プロセスのアドレス指定可能なメモリの範囲外であることを意味すると説明されています (エラー コードは の場合と同じです)。それは、(おそらく、しかしそれはセグメンテーション違反を引き起こすと思います、それはライブラリの「解釈された」AFAIKにすぎないためです)、またはおそらく、ポインタの1つ(実装するために適切なシステムコールに渡されます)のいずれかが外部にあることを意味しますアドレス可能なメモリの; データ交換のために渡されたポインタが無効であることを伝えるカーネルの方法です。read()readv()bufreadv()ioviov_basereadv()EFAULT
NULL-pointers、または同様のものを確認してください。コメント作成者が言っているようにvalgrind、問題の原因を診断するのに役立ちます-ライブラリとユーザーコードで使用可能なデバッグシンボルがある場合。