別のスレッドからのヒントによると、ポインターの逆参照によってセグメンテーション違反が発生するかどうかを分析したいと思います。アイデアは、次のようなコードを書くことです:
bool IsPointerValid( void* pPointer )
{
// when opening "/tmp/hugo" here, it works fine... but not with /dev/null??
int iFD = open( "/dev/null", O_WRONLY );
int iBytesWritten = write( iFD, pPointer, 4 );
close( iFD );
return iBytesWritten > 0;
}
しかし、何を渡しても、常にIsPointerValid(..)
true が返されます。しかし、または fifo を開くと、期待どおりに動作します。NULL ポインタを に渡すと、が返されます。iBytesWritten
4
"/tmp/testfile"
write(..)
-1
を特別扱いする理由は何"/dev/null"
ですか?
ありがとう、
チャーリー